begins concurrent memory operation . concode_field_sep Operation next concode_elem_sep AtomicReference<Operation> head concode_elem_sep AtomicIntegerFieldUpdater<Operation> stateUpdater concode_elem_sep Finalizer prev concode_elem_sep int STATE_ACTIVE concode_elem_sep AtomicReferenceFieldUpdater<Operation,Finalizer> finUpdater concode_elem_sep AtomicReference<Operation> tail concode_elem_sep int STATE_MAY_DEALLOCATE concode_elem_sep GridUnsafeCompoundMemory compound concode_elem_sep int reentries concode_elem_sep Runnable delegate concode_elem_sep Finalizer finHead concode_elem_sep AtomicReferenceFieldUpdater<Operation,GridUnsafeCompoundMemory> compoundUpdater concode_elem_sep ThreadLocal<Operation> currOp concode_elem_sep int STATE_DEALLOCATED concode_elem_sep long id concode_elem_sep int state concode_field_sep void add concode_elem_sep void add concode_elem_sep void next concode_elem_sep void releaseLater concode_elem_sep void previous concode_elem_sep Finalizer previous concode_elem_sep void previous concode_elem_sep void end concode_elem_sep String toString concode_elem_sep String toString concode_elem_sep String toString concode_elem_sep void finish concode_elem_sep void run concode_elem_sep void finalizeLater concode_elem_sep void allowDeallocate concode_elem_sep boolean deallocated
void function ( ) { Operation loc0 = currOp . get ( ) ; if ( loc0 != null ) { loc0 . reentries ++ ; return ; } loc0 = new Operation ( ) ; currOp . set ( loc0 ) ; for ( ; ; ) { Operation loc1 = head . get ( ) ; loc0 . previous ( loc1 ) ; if ( head . compareAndSet ( loc1 , loc0 ) ) { loc1 . next ( loc0 ) ; break ; } } }