Hello people,

I've merged my dethreadization branch as all tests are now working.  There
are still some crashes from time to time but they are a lot less frequent.
I think I now understand deeply what gtk.treemodel should be and I've some
proposition to do to gtk developers ;-)


Possible causes of crashes :

- Some access that are not thread-protected, but I haven't found any yet.

- The MainTree is not threadsafe (while filteredtree is.) Next step is
then to make the MainTree threadsafe, as well as the TreeNode !

- treemodel.py skipping some signals. Solving that involve manually queue
received signals and process them in the good order. (and not allowing to
skip a signal if it is missing)

- multiple signals sent for the same state. That happens for parent with
multiple paths. There are no easy fix for that but, from my tests, it looks
like this is a very rare crash.



Actions that need to be done :

+ Run the Tree_tester in a separate thread and have some race conditions
in our tests.
+ Make the MainTree and Treenode threadsafe. (it's mainly a matter of
putting a decorator on every function)
+ Solve the leak : purge states as soon as they are below the current
treemodel state.
+ Solve a non-existant node crash : really delete a node from the main
tree only when all the states where it appears are purged
+ Remove some functions from task.py (those that duplicate TreeNode
functions)



As usual, crashes report and traces are warmly welcome !

Lionel

_______________________________________________
Mailing list: https://launchpad.net/~gtg-contributors
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~gtg-contributors
More help   : https://help.launchpad.net/ListHelp

Reply via email to