[
https://issues.apache.org/jira/browse/PIVOT-747?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13038540#comment-13038540
]
Greg Brown commented on PIVOT-747:
----------------------------------
@Noel - I don't think we should make assertEventDispatchThread() synchronized.
That will incur a performance hit which, in my opinion, isn't justified for
what is essentially debug code. It may be possible to avoid that penalty by
wrapping the actual check in an assert:
public static final void assertEventDispatchThread() {
assert isEventDispatchThread();
}
public static final synchronized boolean isEventDispatchThread() {
return (java.awt.EventQueue.isDispatchThread()
&& !Thread.currentThread().getName().equals("main"));
}
However, it would probably be best to avoid this if possible.
> pivot & blocking edt
> --------------------
>
> Key: PIVOT-747
> URL: https://issues.apache.org/jira/browse/PIVOT-747
> Project: Pivot
> Issue Type: Improvement
> Components: wtk
> Affects Versions: 2.0
> Reporter: Andrei Pozolotin
> Attachments: patch-001-exit.patch
>
>
> Greg, hello;
> in this thread:
> http://mail-archives.apache.org/mod_mbox/pivot-user/201001.mbox/%[email protected]%3E
> your final word is:
> "Sorry, it is not possible"
> but I know that you know that it is possible :-)
> the reason I need this is same as Martin here:
> http://netbeans.org/bugzilla/show_bug.cgi?id=90590
> namely: do some cleanup after shutdown was requested and confirmed:
> org.apache.pivot.wtk.Application
> public boolean shutdown(boolean optional) throws Exception;
> since you call shutdown(boolean optional) from EDT I need to block it, using
> this approach:
> http://bugs.sun.com/view_bug.do?bug_id=6424157
> wich "almost works", except you have this check everywhere:
> Container.assertEventDispatchThread();
> which fails, as described above:
> http://bugs.sun.com/view_bug.do?bug_id=6424157
> due to EventQueue.isDispatchThread() failing on the "T1 vs T1*" distinction
> my request is this:
> do you think you could make
> Container.assertEventDispatchThread();
> less pedantic, and allow both "current and past/next" EDT threads to pass
> which are created during EventQueue push() / pop()
> thanks!
> Andrei
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira