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

Comparing jsr166/src/main/java/util/concurrent/LinkedTransferQueue.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 797 | Line 797 | public class LinkedTransferQueue<E> exte
797                                   new PaddedAtomicReference<Node<E>>(null));
798      }
799  
800
800      // Unsafe mechanics
802    private static long fieldOffset(String fieldName, Class<?> klazz) {
803        try {
804            return UNSAFE.objectFieldOffset(klazz.getDeclaredField(fieldName));
805        } catch (NoSuchFieldException e) {
806            // Convert Exception to Error
807            NoSuchFieldError error = new NoSuchFieldError(fieldName);
808            error.initCause(e);
809            throw error;
810        }
811    }
801  
802      private static final sun.misc.Unsafe UNSAFE = sun.misc.Unsafe.getUnsafe();
803      private static final long headOffset =
804 <        fieldOffset("head", LinkedTransferQueue.class);
804 >        objectFieldOffset("head", LinkedTransferQueue.class);
805      private static final long tailOffset =
806 <        fieldOffset("tail", LinkedTransferQueue.class);
806 >        objectFieldOffset("tail", LinkedTransferQueue.class);
807      private static final long cleanMeOffset =
808 <        fieldOffset("cleanMe", LinkedTransferQueue.class);
808 >        objectFieldOffset("cleanMe", LinkedTransferQueue.class);
809  
810 +    private static long objectFieldOffset(String field, Class<?> klazz) {
811 +        try {
812 +            return UNSAFE.objectFieldOffset(klazz.getDeclaredField(field));
813 +        } catch (NoSuchFieldException e) {
814 +            // Convert Exception to corresponding Error
815 +            NoSuchFieldError error = new NoSuchFieldError(field);
816 +            error.initCause(e);
817 +            throw error;
818 +        }
819 +    }
820   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines