< prev index next >

src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java

Print this page

4377         Class<ForkJoinPool> klass = ForkJoinPool.class;
4378         try {
4379             Field poolIdsField = klass.getDeclaredField("poolIds");
4380             POOLIDS_BASE = U.staticFieldBase(poolIdsField);
4381             POOLIDS = U.staticFieldOffset(poolIdsField);
4382         } catch (NoSuchFieldException e) {
4383             throw new ExceptionInInitializerError(e);
4384         }
4385         CTL = U.objectFieldOffset(klass, "ctl");
4386         RUNSTATE = U.objectFieldOffset(klass, "runState");
4387         PARALLELISM =  U.objectFieldOffset(klass, "parallelism");
4388         THREADIDS = U.objectFieldOffset(klass, "threadIds");
4389         TERMINATION = U.objectFieldOffset(klass, "termination");
4390         Class<ForkJoinTask[]> aklass = ForkJoinTask[].class;
4391         ABASE = U.arrayBaseOffset(aklass);
4392         int scale = U.arrayIndexScale(aklass);
4393         ASHIFT = 31 - Integer.numberOfLeadingZeros(scale);
4394         if ((scale & (scale - 1)) != 0)
4395             throw new Error("array index scale not a power of two");
4396 
4397         Class<?> dep = LockSupport.class; // ensure loaded
4398         // allow access to non-public methods
4399         JLA = SharedSecrets.getJavaLangAccess();
4400         SharedSecrets.setJavaUtilConcurrentFJPAccess(
4401             new JavaUtilConcurrentFJPAccess() {
4402                 @Override
4403                 public long beginCompensatedBlock(ForkJoinPool pool) {
4404                     return pool.beginCompensatedBlock();
4405                 }
4406                 public void endCompensatedBlock(ForkJoinPool pool, long post) {
4407                     pool.endCompensatedBlock(post);
4408                 }
4409             });
4410         defaultForkJoinWorkerThreadFactory =
4411             new DefaultForkJoinWorkerThreadFactory();
4412         common = new ForkJoinPool((byte)0);
4413     }
4414 }

4377         Class<ForkJoinPool> klass = ForkJoinPool.class;
4378         try {
4379             Field poolIdsField = klass.getDeclaredField("poolIds");
4380             POOLIDS_BASE = U.staticFieldBase(poolIdsField);
4381             POOLIDS = U.staticFieldOffset(poolIdsField);
4382         } catch (NoSuchFieldException e) {
4383             throw new ExceptionInInitializerError(e);
4384         }
4385         CTL = U.objectFieldOffset(klass, "ctl");
4386         RUNSTATE = U.objectFieldOffset(klass, "runState");
4387         PARALLELISM =  U.objectFieldOffset(klass, "parallelism");
4388         THREADIDS = U.objectFieldOffset(klass, "threadIds");
4389         TERMINATION = U.objectFieldOffset(klass, "termination");
4390         Class<ForkJoinTask[]> aklass = ForkJoinTask[].class;
4391         ABASE = U.arrayBaseOffset(aklass);
4392         int scale = U.arrayIndexScale(aklass);
4393         ASHIFT = 31 - Integer.numberOfLeadingZeros(scale);
4394         if ((scale & (scale - 1)) != 0)
4395             throw new Error("array index scale not a power of two");
4396 
4397         U.ensureClassInitialized(LockSupport.class); // ensure loaded and initialized
4398         // allow access to non-public methods
4399         JLA = SharedSecrets.getJavaLangAccess();
4400         SharedSecrets.setJavaUtilConcurrentFJPAccess(
4401             new JavaUtilConcurrentFJPAccess() {
4402                 @Override
4403                 public long beginCompensatedBlock(ForkJoinPool pool) {
4404                     return pool.beginCompensatedBlock();
4405                 }
4406                 public void endCompensatedBlock(ForkJoinPool pool, long post) {
4407                     pool.endCompensatedBlock(post);
4408                 }
4409             });
4410         defaultForkJoinWorkerThreadFactory =
4411             new DefaultForkJoinWorkerThreadFactory();
4412         common = new ForkJoinPool((byte)0);
4413     }
4414 }
< prev index next >