← Back to team overview

gtg-contributors team mailing list archive

Re: liblarch news

 

Hi Luca,

As you said, it doesn't solve the crash and I think that, in the current
trunk, crashes are only due to our implementation.

Now, filteredtree support "states". It means that the Gtk.TreeModel ask
for a given states.

Current crashes, IMHO, come from :

1) Bugs in our code. We might send some answers that are a mix between the
asked state and the current state.

2) Bad implementation. We have a node which appears multiple times, we
have to send the signal "node added" for each path. Unfortunatly, the
filteredtree logic cannot handle that. The node is there or not. It cannot
be "partially there". Which means that the state between the two "node
added" signals is broken, by design.

I've been able to isolate some of those bugs in the units tests.


Alternative methods:
###################

What we could invest is to use, in the liblarch-gtk layer, a
gtk.TreeStore. Liblarch would then populate that TreeStore which would be
displayed.

The good point is that it would allow us to keep a good/clean liblarch,
the workaround being in the liblarch-gtk (where it should be anyway).

The bad point might be the performance but I'm not sure that, with all our
workarounds, we are not doing it worse anyway.

What do you think ?

Lionel



On Sat, 9 Oct 2010 02:55:06 -0700, Luca Invernizzi
<invernizzi.l@xxxxxxxxx>
wrote:
> On Sat, Oct 9, 2010 at 2:05 AM, Luca Invernizzi <invernizzi.l@xxxxxxxxx>
> wrote:
>> Lionel, could you please take a look at
>> https://code.edge.launchpad.net/~gtg-user/gtg/gtk-events/, in
>> particular to GTG/tools/liblarch/synchronized.py?
>> It defines a function decorator that executes a function only when
>> there are no more events pending in gtk. Perhaps it could be useful in
>> fixing liblarch, although it still crashes.
>>
> 
> PS: since the gtk mainloop should not be executed by more than one
> thread, it still misses a way to put threads to sleep instead of
> making them execute the gtk mainloop. I'm looking at ways to do that,
> perhaps using the event-after signal
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~gtg-contributors
> Post to     : gtg-contributors@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~gtg-contributors
> More help   : https://help.launchpad.net/ListHelp



Follow ups

References