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

Comparing jsr166/src/main/java/util/concurrent/ForkJoinWorkerThread.java (file contents):
Revision 1.2 by jsr166, Sun Jul 26 07:04:29 2009 UTC vs.
Revision 1.3 by jsr166, Sun Jul 26 17:48:58 2009 UTC

# Line 730 | Line 730 | public class ForkJoinWorkerThread extend
730      }
731  
732      // Unsafe mechanics
733    private static long fieldOffset(String fieldName, Class<?> klazz) {
734        try {
735            return UNSAFE.objectFieldOffset(klazz.getDeclaredField(fieldName));
736        } catch (NoSuchFieldException e) {
737            // Convert Exception to Error
738            NoSuchFieldError error = new NoSuchFieldError(fieldName);
739            error.initCause(e);
740            throw error;
741        }
742    }
733  
734      private static final sun.misc.Unsafe UNSAFE = sun.misc.Unsafe.getUnsafe();
735      private static final long spOffset =
736 <        fieldOffset("sp", ForkJoinWorkerThread.class);
736 >        objectFieldOffset("sp", ForkJoinWorkerThread.class);
737      private static final long runStateOffset =
738 <        fieldOffset("runState", ForkJoinWorkerThread.class);
738 >        objectFieldOffset("runState", ForkJoinWorkerThread.class);
739      private static final long qBase;
740      private static final int qShift;
741  
# Line 756 | Line 746 | public class ForkJoinWorkerThread extend
746              throw new Error("data type scale not a power of two");
747          qShift = 31 - Integer.numberOfLeadingZeros(s);
748      }
749 +
750 +    private static long objectFieldOffset(String field, Class<?> klazz) {
751 +        try {
752 +            return UNSAFE.objectFieldOffset(klazz.getDeclaredField(field));
753 +        } catch (NoSuchFieldException e) {
754 +            // Convert Exception to corresponding Error
755 +            NoSuchFieldError error = new NoSuchFieldError(field);
756 +            error.initCause(e);
757 +            throw error;
758 +        }
759 +    }
760   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines