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

Comparing jsr166/src/main/java/util/concurrent/Phaser.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 928 | Line 928 | public class Phaser {
928          return p;
929      }
930  
931
931      // Unsafe mechanics
933    private static long fieldOffset(String fieldName, Class<?> klazz) {
934        try {
935            return UNSAFE.objectFieldOffset(klazz.getDeclaredField(fieldName));
936        } catch (NoSuchFieldException e) {
937            // Convert Exception to Error
938            NoSuchFieldError error = new NoSuchFieldError(fieldName);
939            error.initCause(e);
940            throw error;
941        }
942    }
932  
933      private static final sun.misc.Unsafe UNSAFE = sun.misc.Unsafe.getUnsafe();
934      private static final long stateOffset =
935 <        fieldOffset("state", Phaser.class);
935 >        objectFieldOffset("state", Phaser.class);
936  
937      private final boolean casState(long cmp, long val) {
938          return UNSAFE.compareAndSwapLong(this, stateOffset, cmp, val);
939      }
940 +
941 +    private static long objectFieldOffset(String field, Class<?> klazz) {
942 +        try {
943 +            return UNSAFE.objectFieldOffset(klazz.getDeclaredField(field));
944 +        } catch (NoSuchFieldException e) {
945 +            // Convert Exception to corresponding Error
946 +            NoSuchFieldError error = new NoSuchFieldError(field);
947 +            error.initCause(e);
948 +            throw error;
949 +        }
950 +    }
951   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines