720 |
|
* specially. |
721 |
|
*/ |
722 |
|
private void checkShutdownAccess() { |
723 |
+ |
// assert mainLock.isHeldByCurrentThread(); |
724 |
|
SecurityManager security = System.getSecurityManager(); |
725 |
|
if (security != null) { |
726 |
|
security.checkPermission(shutdownPerm); |
727 |
< |
final ReentrantLock mainLock = this.mainLock; |
728 |
< |
mainLock.lock(); |
728 |
< |
try { |
729 |
< |
for (Worker w : workers) |
730 |
< |
security.checkAccess(w.thread); |
731 |
< |
} finally { |
732 |
< |
mainLock.unlock(); |
733 |
< |
} |
727 |
> |
for (Worker w : workers) |
728 |
> |
security.checkAccess(w.thread); |
729 |
|
} |
730 |
|
} |
731 |
|
|
734 |
|
* (in which case some threads may remain uninterrupted). |
735 |
|
*/ |
736 |
|
private void interruptWorkers() { |
737 |
< |
final ReentrantLock mainLock = this.mainLock; |
738 |
< |
mainLock.lock(); |
739 |
< |
try { |
745 |
< |
for (Worker w : workers) |
746 |
< |
w.interruptIfStarted(); |
747 |
< |
} finally { |
748 |
< |
mainLock.unlock(); |
749 |
< |
} |
737 |
> |
// assert mainLock.isHeldByCurrentThread(); |
738 |
> |
for (Worker w : workers) |
739 |
> |
w.interruptIfStarted(); |
740 |
|
} |
741 |
|
|
742 |
|
/** |