register threadlocal in this context . after registration value of threadlocal from parent thread is copied to the child thread when method #wrap runnable or #wrap java.util.concurrent.callable . concode_field_sep Object[] previousValues concode_elem_sep ThreadLocal[] threadLocals concode_elem_sep Object[] values concode_elem_sep CopyOnWriteArrayList<ThreadLocal<?>> toPropagate concode_field_sep ThreadLocal<?>[] getThreadLocals concode_elem_sep ThreadLocalState currentThreadState concode_elem_sep void removeThreadLocal concode_elem_sep void cleanup concode_elem_sep void clear concode_elem_sep void propagate concode_elem_sep Runnable wrap concode_elem_sep Callable<T> wrap
void function ( ThreadLocal < ? > arg0 ) { if ( arg0 == null ) { throw new IllegalArgumentException ( ) ; } toPropagate . addIfAbsent ( arg0 ) ; }