6878284: Sometimes test/javax/swing/system/6799345/TestShutdown.java "hangs"
Reviewed-by: art, ant
This commit is contained in:
parent
0d7e36485c
commit
d091c784ed
@ -843,7 +843,8 @@ public class EventQueue {
|
||||
|
||||
final void initDispatchThread() {
|
||||
synchronized (this) {
|
||||
if (dispatchThread == null && !threadGroup.isDestroyed()) {
|
||||
AppContext appContext = AppContext.getAppContext();
|
||||
if (dispatchThread == null && !threadGroup.isDestroyed() && !appContext.isDisposed()) {
|
||||
dispatchThread = (EventDispatchThread)
|
||||
AccessController.doPrivileged(new PrivilegedAction() {
|
||||
public Object run() {
|
||||
|
@ -154,14 +154,17 @@ public final class AWTAutoShutdown implements Runnable {
|
||||
|
||||
/**
|
||||
* Add a specified thread to the set of busy event dispatch threads.
|
||||
* If this set already contains the specified thread, the call leaves
|
||||
* this set unchanged and returns silently.
|
||||
* If this set already contains the specified thread or the thread is null,
|
||||
* the call leaves this set unchanged and returns silently.
|
||||
*
|
||||
* @param thread thread to be added to this set, if not present.
|
||||
* @see AWTAutoShutdown#notifyThreadFree
|
||||
* @see AWTAutoShutdown#isReadyToShutdown
|
||||
*/
|
||||
public void notifyThreadBusy(final Thread thread) {
|
||||
if (thread == null) {
|
||||
return;
|
||||
}
|
||||
synchronized (activationLock) {
|
||||
synchronized (mainLock) {
|
||||
if (blockerThread == null) {
|
||||
@ -177,14 +180,17 @@ public final class AWTAutoShutdown implements Runnable {
|
||||
|
||||
/**
|
||||
* Remove a specified thread from the set of busy event dispatch threads.
|
||||
* If this set doesn't contain the specified thread, the call leaves
|
||||
* this set unchanged and returns silently.
|
||||
* If this set doesn't contain the specified thread or the thread is null,
|
||||
* the call leaves this set unchanged and returns silently.
|
||||
*
|
||||
* @param thread thread to be removed from this set, if present.
|
||||
* @see AWTAutoShutdown#notifyThreadBusy
|
||||
* @see AWTAutoShutdown#isReadyToShutdown
|
||||
*/
|
||||
public void notifyThreadFree(final Thread thread) {
|
||||
if (thread == null) {
|
||||
return;
|
||||
}
|
||||
synchronized (activationLock) {
|
||||
synchronized (mainLock) {
|
||||
busyThreadSet.remove(thread);
|
||||
|
Loading…
Reference in New Issue
Block a user