You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ControllerWidget has many memory leaks and cyclic references which prevent it from being deleted
For instance:
from soma.controller import Controller
from soma.qt_gui.controller import ControllerWidget
c = Controller()
cw = ControllerWidget(c)
cw.show()
del cw
the widget doesn't disappear on del. Plus the Controller instance still has callbacks left, see for instance c.on_fields_change.callbacks is not empty after the del.
I'm currently trying to work on it but there is much work there.
As a first step I could make the ControllerWidget deleted when gc.collect() is called, but the callbacks are still not removed from the controller...
The text was updated successfully, but these errors were encountered:
- use weak proxies to all methods used to register callbacks
- garbage collect callbacks lists when deleting ControllerWidget
but I still could not make the widget to be deleted when calling del.
gc.collect() sometimes works however, and the controller is now cleaned
from callbacks to a deleted GUI.
In this branch, we have two ControllerWidget, one in qt_gui and one in web. To answer this issue, we must first decide what to do with them. Should we keep both or make one of them obsolete ? The web has a better support for several complex controller types but could have missing features in its still young API. I do not have a clear idea of the cost to use only web GUI.
ControllerWidget
has many memory leaks and cyclic references which prevent it from being deletedFor instance:
the widget doesn't disappear on del. Plus the
Controller
instance still has callbacks left, see for instancec.on_fields_change.callbacks
is not empty after the del.I'm currently trying to work on it but there is much work there.
As a first step I could make the
ControllerWidget
deleted whengc.collect()
is called, but the callbacks are still not removed from the controller...The text was updated successfully, but these errors were encountered: