I did this and the result is that the "terminated" event is not even handled. I get this debug line:
005436 qx.util.fsm.FiniteStateMachine[52-0]: Fsm_1: Cannot listen to event 'terminated', because the finite state machine is not running. On 08/03/2016 11:42 μμ, Derrell Lipman wrote: > So I've been thinking about this. Although what I told you is correct -- > modern browsers, and even old ones, should have no problem automatically > garbage collecting an FSM because it has no references to DOM objects > and no circular references -- qooxdoo debug display logic could still be > applied to disposal. I'm thinking about what needs to change to support > that feature. > > Would you please try something for me... > > At qx/util/fsm/FiniteStateMachine.js:1236, change > this.fireDataEvent("terminated", thisState) > to > this.scheduleEvent("terminated", this, thisState); > > Then run your original playground test with your call to fsm.dispose(). > I'm interested in whether you still see the crash. I don't think you > will, since the fsm processing stack will have unwound at the point that > the event fires so it should be safe to dispose. > > (BTW, after calling fsm.dispose(), you should probably /still/ be > setting your fsm variable to null, so that the garbage collector can do > its job on the FSM object itself.) > > Derrell > > > On Tue, Mar 8, 2016 at 3:33 PM voger <vogernewslett...@yahoo.gr > <mailto:vogernewslett...@yahoo.gr>> wrote: > > Thanks Derrell. It is great to hear from the author itself. > > It's just that I saw in the qx.util.fsm.FiniteStateMachine#destruct() > code that it does some clean up functionality and wanted to be in the > safe side. > > Plus if I wouldn't understand why it didn't work how I thought it > should, I would literally loose sleep over it. I don't exaggerate. I > wasted hours to understand the problem even after you suggested that > there was no need to dispose the fsm. > > > > > > On 08/03/2016 07:03 μμ, Derrell Lipman wrote: > > Right. My suggestion is that you shouldn't need to call > fsm.dispose(). > > Instead, just set > > fsm = null; > > so it will be garbage collected. I don't believe there is > anything here > > that needs "help" with disposing. > > > > Here's the modified example: http://tinyurl.com/zxmbrcj > > > > Cheers, > > > > Derrell > > > > > > On Tue, Mar 8, 2016 at 11:20 AM voger <vogernewslett...@yahoo.gr > <mailto:vogernewslett...@yahoo.gr> > > <mailto:vogernewslett...@yahoo.gr > <mailto:vogernewslett...@yahoo.gr>>> wrote: > > > > I did a simple example of the problem. http://tinyurl.com/zg8nse2 > > > > After some investigation with the debugger it seems that the > problem is > > the fact that I am trying to dispose the fsm object using > it's own event > > handler. > > > > A walk through to explain better what I mean: > > > > 1. In the final state I click the "Terminate" button. > > 2. The fsm object picks the "execute" event and starts > processing it > > 3. One of the handlers decides to fsm.dispose() > > 4. The fsm isn't done yet with the "execute" event but the > fsm it's > > gone now > > 5. Exception > > > > > > An idea how to terminate and dispose the fsm is to use some > other event > > not observed by fsm. Something like this example > > http://tinyurl.com/jj7kfxt . > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > > Transform Data into Opportunity. > > Accelerate data analysis in your applications with > > Intel Data Analytics Acceleration Library. > > Click to learn more. > > http://makebettercode.com/inteldaal-eval > > _______________________________________________ > > qooxdoo-devel mailing list > > qooxdoo-devel@lists.sourceforge.net > <mailto:qooxdoo-devel@lists.sourceforge.net> > > <mailto:qooxdoo-devel@lists.sourceforge.net > <mailto:qooxdoo-devel@lists.sourceforge.net>> > > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel > > > > > > > > > > ------------------------------------------------------------------------------ > > Transform Data into Opportunity. > > Accelerate data analysis in your applications with > > Intel Data Analytics Acceleration Library. > > Click to learn more. > > http://makebettercode.com/inteldaal-eval > > > > > > > > _______________________________________________ > > qooxdoo-devel mailing list > > qooxdoo-devel@lists.sourceforge.net > <mailto:qooxdoo-devel@lists.sourceforge.net> > > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel > > > > > > ------------------------------------------------------------------------------ > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://makebettercode.com/inteldaal-eval > _______________________________________________ > qooxdoo-devel mailing list > qooxdoo-devel@lists.sourceforge.net > <mailto:qooxdoo-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel > > > > ------------------------------------------------------------------------------ > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://makebettercode.com/inteldaal-eval > > > > _______________________________________________ > qooxdoo-devel mailing list > qooxdoo-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel > ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel