[kepler-dev] Deadlock while wrapping up
xiaowen
xin2 at llnl.gov
Tue Dec 21 14:48:59 PST 2004
Hi Christopher,
Does Ptolemy II release patches against 4.0.1 so that users of the
latest stable release can also benefit from the bug fixes?
Most users of SPA/Kepler don't have Ptolemy CVS accounts, and many/most
of them probably prefer to stick with the latest stable release anyway.
I'm wondering what the best way is for SPA/Kepler developers to
distribute workflows. Must we also send users instructions for how to
patch Ptolemy?
Thanks!
Xiaowen
Am Dienstag, den 21.12.2004, 08:40 -0800 schrieb Christopher Brooks:
> Hi Xiaowen,
>
> Thanks for including the stack traces of the threads.
>
> In ptolemy/actor/lib/ModelFrame.java, executionFinished is
> synchronized.
>
> /** Report that execution of the model has finished.
> * @param manager The manager calling this method.
> */
> public synchronized void executionFinished(Manager manager) {
> report("execution finished.");
> }
>
> It is the only synchronized method in ModelFrame or RunTableau.
> It has been synchronized since version 1.1 of ModelFrame in 28-Nov-99.
>
> Xiaojun reported a similar bug on May 20, 2003:
>
> > The deadlock may appear when:
> > the run window of a model loses focus while the model is running,
> > then regains focus (because of user action) at the time the
> > execution finishes.
> >
> > The deadlock is between the following threads: the manager thread,
> > in updating the status bar at the bottom of the run window, and
> > the AWT thread, in repainting the run window.
> >
> > From the stack trace [...], the manager thread has a
> > lock on the run window because the ModelFrame.executionFinished()
> > method is synchronized. Other methods in ModelFrame, e.g.
> > executionError(), managerStateChanged(), are not synchronized.
> > Why?
>
> I've gone ahead and made executionFinished() unsynchronized.
>
> _Christopher
More information about the Kepler-dev
mailing list