ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/ForkJoinPool.java
(Generate patch)

Comparing jsr166/src/main/java/util/concurrent/ForkJoinPool.java (file contents):
Revision 1.232 by jsr166, Sun Jan 4 01:17:26 2015 UTC vs.
Revision 1.233 by jsr166, Sun Jan 4 09:15:11 2015 UTC

# Line 1220 | Line 1220 | public class ForkJoinPool extends Abstra
1220          }
1221  
1222          // Unsafe mechanics. Note that some are (and must be) the same as in FJP
1223 <        private static final sun.misc.Unsafe U;
1223 >        private static final sun.misc.Unsafe U = sun.misc.Unsafe.getUnsafe();
1224          private static final int  ABASE;
1225          private static final int  ASHIFT;
1226          private static final long QTOP;
# Line 1228 | Line 1228 | public class ForkJoinPool extends Abstra
1228          private static final long QCURRENTSTEAL;
1229          static {
1230              try {
1231                U = sun.misc.Unsafe.getUnsafe();
1232                Class<?> wk = WorkQueue.class;
1233                Class<?> ak = ForkJoinTask[].class;
1231                  QTOP = U.objectFieldOffset
1232 <                    (wk.getDeclaredField("top"));
1232 >                    (WorkQueue.class.getDeclaredField("top"));
1233                  QLOCK = U.objectFieldOffset
1234 <                    (wk.getDeclaredField("qlock"));
1234 >                    (WorkQueue.class.getDeclaredField("qlock"));
1235                  QCURRENTSTEAL = U.objectFieldOffset
1236 <                    (wk.getDeclaredField("currentSteal"));
1237 <                ABASE = U.arrayBaseOffset(ak);
1238 <                int scale = U.arrayIndexScale(ak);
1236 >                    (WorkQueue.class.getDeclaredField("currentSteal"));
1237 >
1238 >                ABASE = U.arrayBaseOffset(ForkJoinTask[].class);
1239 >                int scale = U.arrayIndexScale(ForkJoinTask[].class);
1240                  if ((scale & (scale - 1)) != 0)
1241                      throw new Error("array index scale not a power of two");
1242                  ASHIFT = 31 - Integer.numberOfLeadingZeros(scale);
# Line 3343 | Line 3341 | public class ForkJoinPool extends Abstra
3341      }
3342  
3343      // Unsafe mechanics
3344 <    private static final sun.misc.Unsafe U;
3344 >    private static final sun.misc.Unsafe U = sun.misc.Unsafe.getUnsafe();
3345      private static final int  ABASE;
3346      private static final int  ASHIFT;
3347      private static final long CTL;
# Line 3360 | Line 3358 | public class ForkJoinPool extends Abstra
3358      static {
3359          // initialize field offsets for CAS etc
3360          try {
3363            U = sun.misc.Unsafe.getUnsafe();
3364            Class<?> k = ForkJoinPool.class;
3361              CTL = U.objectFieldOffset
3362 <                (k.getDeclaredField("ctl"));
3362 >                (ForkJoinPool.class.getDeclaredField("ctl"));
3363              RUNSTATE = U.objectFieldOffset
3364 <                (k.getDeclaredField("runState"));
3364 >                (ForkJoinPool.class.getDeclaredField("runState"));
3365              STEALCOUNTER = U.objectFieldOffset
3366 <                (k.getDeclaredField("stealCounter"));
3367 <            Class<?> tk = Thread.class;
3366 >                (ForkJoinPool.class.getDeclaredField("stealCounter"));
3367 >
3368              PARKBLOCKER = U.objectFieldOffset
3369 <                (tk.getDeclaredField("parkBlocker"));
3370 <            Class<?> wk = WorkQueue.class;
3369 >                (Thread.class.getDeclaredField("parkBlocker"));
3370 >
3371              QTOP = U.objectFieldOffset
3372 <                (wk.getDeclaredField("top"));
3372 >                (WorkQueue.class.getDeclaredField("top"));
3373              QLOCK = U.objectFieldOffset
3374 <                (wk.getDeclaredField("qlock"));
3374 >                (WorkQueue.class.getDeclaredField("qlock"));
3375              QSCANSTATE = U.objectFieldOffset
3376 <                (wk.getDeclaredField("scanState"));
3376 >                (WorkQueue.class.getDeclaredField("scanState"));
3377              QPARKER = U.objectFieldOffset
3378 <                (wk.getDeclaredField("parker"));
3378 >                (WorkQueue.class.getDeclaredField("parker"));
3379              QCURRENTSTEAL = U.objectFieldOffset
3380 <                (wk.getDeclaredField("currentSteal"));
3380 >                (WorkQueue.class.getDeclaredField("currentSteal"));
3381              QCURRENTJOIN = U.objectFieldOffset
3382 <                (wk.getDeclaredField("currentJoin"));
3383 <            Class<?> ak = ForkJoinTask[].class;
3384 <            ABASE = U.arrayBaseOffset(ak);
3385 <            int scale = U.arrayIndexScale(ak);
3382 >                (WorkQueue.class.getDeclaredField("currentJoin"));
3383 >
3384 >            ABASE = U.arrayBaseOffset(ForkJoinTask[].class);
3385 >            int scale = U.arrayIndexScale(ForkJoinTask[].class);
3386              if ((scale & (scale - 1)) != 0)
3387                  throw new Error("array index scale not a power of two");
3388              ASHIFT = 31 - Integer.numberOfLeadingZeros(scale);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines