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> 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>> 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>
> > 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://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://makebettercode.com/inteldaal-eval
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel