Thank you. I will just set it null and let GC do it's magic. Just in case it is of any help I created a simple project with the test case from the playground example. I posted it in github https://github.com/voger/fsmtest
The problem is this line in qx.util.fsm.FiniteStateMachine this.__savedStates = this.__states = null; When the fsm tries to continue processing the event these arrays are already set to null. BTW I forgot to say thank you for the whole FSM mechanism. It is indeed a great tool that I recently discovered and it will help me to do things I considered very difficult. Thank you. :D On 09/03/2016 09:20 μμ, Derrell Lipman wrote: > Yeah, I see. That makes sense. > > For now, just set your fsm variable to null. This doesn't help you if > you're trying to use the dispose debugging, but at least should ensure > that the memory does actually get garbage collected. At some point, I > may try to work out how to allow the dispose debugging to work with > this, but it's a pretty obscure case and is becoming less and less > necessary as browsers mature anyway. > > Cheers, > > Derrell > > > On Wed, Mar 9, 2016 at 1:00 PM voger <vogernewslett...@yahoo.gr > <mailto:vogernewslett...@yahoo.gr>> wrote: > > 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> > > <mailto: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>> > > > <mailto: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>> > > > <mailto: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> > > <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> > > <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://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 > _______________________________________________ > 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://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 > ------------------------------------------------------------------------------ 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