jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinWorkerThread.java
changeset 43219 566b551b7820
parent 39723 9aa34e4a0469
child 43545 fdecd1d14d53
equal deleted inserted replaced
43218:8be65fea76fc 43219:566b551b7820
   183      * running each top-level task.
   183      * running each top-level task.
   184      */
   184      */
   185     static final class InnocuousForkJoinWorkerThread extends ForkJoinWorkerThread {
   185     static final class InnocuousForkJoinWorkerThread extends ForkJoinWorkerThread {
   186         /** The ThreadGroup for all InnocuousForkJoinWorkerThreads */
   186         /** The ThreadGroup for all InnocuousForkJoinWorkerThreads */
   187         private static final ThreadGroup innocuousThreadGroup =
   187         private static final ThreadGroup innocuousThreadGroup =
   188             ThreadLocalRandom.createThreadGroup("InnocuousForkJoinWorkerThreadGroup");
   188                 java.security.AccessController.doPrivileged(
       
   189                     new java.security.PrivilegedAction<>() {
       
   190                         public ThreadGroup run() {
       
   191                             ThreadGroup group = Thread.currentThread().getThreadGroup();
       
   192                             for (ThreadGroup p; (p = group.getParent()) != null; )
       
   193                                 group = p;
       
   194                             return new ThreadGroup(group, "InnocuousForkJoinWorkerThreadGroup");
       
   195                         }});
   189 
   196 
   190         /** An AccessControlContext supporting no privileges */
   197         /** An AccessControlContext supporting no privileges */
   191         private static final AccessControlContext INNOCUOUS_ACC =
   198         private static final AccessControlContext INNOCUOUS_ACC =
   192             new AccessControlContext(
   199             new AccessControlContext(
   193                 new ProtectionDomain[] {
   200                 new ProtectionDomain[] {
   213 
   220 
   214         @Override // paranoically
   221         @Override // paranoically
   215         public void setContextClassLoader(ClassLoader cl) {
   222         public void setContextClassLoader(ClassLoader cl) {
   216             throw new SecurityException("setContextClassLoader");
   223             throw new SecurityException("setContextClassLoader");
   217         }
   224         }
   218 
       
   219     }
   225     }
   220 }
   226 }