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 }
|