Hi Yaroslav,
"Yaroslav Bulatov" <[EMAIL PROTECTED]> wrote on 11/08/2006 08:44:04 PM:
> Another place that waits on the list is the RunnableQueue.invokeLater()
method.
No invokeLater does not wait on the list. It synchronizes on it, you
don't have to notify a thread that is blocked on a synchronize, it will
drop through when the resource becomes available.
> So wouldn't it deadlock if I do
> canvas.getUpdateManager().getUpdateRunnableQueue().invokeLater() while
> the runnableQueueThread is running?
No, I don't think so. There is a problem if you use
invokeAndWait from the Swing thread but AFAIK invokeLater doesn't
have (and hasn't had) deadlock issues.
> I'm using the latest version from SVN (revision 471768)
>
>
> On 11/8/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > Hi Yaroslav
> >
> > "Yaroslav Bulatov" <[EMAIL PROTECTED]> wrote on 11/07/2006 08:30:28
PM:
> >
> > > I used canvas.getUpdateManager().getUpdateRunnableQueue().
> > > invokeLater(new Runnable()) to update DOM tree, but was running
> > > into deadlock sometimes. I noticed that "synchronized" block in
> > > RunnableQueue.run doesn't have "notify" at the end. If I add
> > > list.notify() there, I no longer get deadlocks.
> >
> > I don't think this fixed your problem. The only code that
> > wait's on the list is the RunnableQueue.run method, which obviously
> > can't be waiting when you call notify, so while I don't think your
> > change is dangerous I don't think it fixes anything.
> >
> > You don't say what version of Batik you are using, we have
> > fixed some small deadlock issues since 1.6 was released.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail:
[EMAIL PROTECTED]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]