< prev index next >

src/java.base/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java

Print this page
8197531: Miscellaneous changes imported from jsr166 CVS 2018-04
Reviewed-by: martin, psandoz


1052     public void forEach(Consumer<? super E> action) {
1053         Objects.requireNonNull(action);
1054         forEachFrom(action, head);
1055     }
1056 
1057     // VarHandle mechanics
1058     private static final VarHandle HEAD;
1059     private static final VarHandle TAIL;
1060     static final VarHandle ITEM;
1061     static final VarHandle NEXT;
1062     static {
1063         try {
1064             MethodHandles.Lookup l = MethodHandles.lookup();
1065             HEAD = l.findVarHandle(ConcurrentLinkedQueue.class, "head",
1066                                    Node.class);
1067             TAIL = l.findVarHandle(ConcurrentLinkedQueue.class, "tail",
1068                                    Node.class);
1069             ITEM = l.findVarHandle(Node.class, "item", Object.class);
1070             NEXT = l.findVarHandle(Node.class, "next", Node.class);
1071         } catch (ReflectiveOperationException e) {
1072             throw new Error(e);
1073         }
1074     }
1075 }


1052     public void forEach(Consumer<? super E> action) {
1053         Objects.requireNonNull(action);
1054         forEachFrom(action, head);
1055     }
1056 
1057     // VarHandle mechanics
1058     private static final VarHandle HEAD;
1059     private static final VarHandle TAIL;
1060     static final VarHandle ITEM;
1061     static final VarHandle NEXT;
1062     static {
1063         try {
1064             MethodHandles.Lookup l = MethodHandles.lookup();
1065             HEAD = l.findVarHandle(ConcurrentLinkedQueue.class, "head",
1066                                    Node.class);
1067             TAIL = l.findVarHandle(ConcurrentLinkedQueue.class, "tail",
1068                                    Node.class);
1069             ITEM = l.findVarHandle(Node.class, "item", Object.class);
1070             NEXT = l.findVarHandle(Node.class, "next", Node.class);
1071         } catch (ReflectiveOperationException e) {
1072             throw new ExceptionInInitializerError(e);
1073         }
1074     }
1075 }
< prev index next >