[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