adds a callback to the parameter provided , adding parameter to the queue if needed . this should always be synchronous . concode_field_sep int FINISHED concode_elem_sep int state concode_elem_sep ThreadPoolExecutor pool concode_elem_sep int STAGE_1_ASYNC concode_elem_sep int STAGE_1_SYNC concode_elem_sep AtomicIntegerFieldUpdater STATE_FIELD concode_elem_sep int PENDING concode_elem_sep E t concode_elem_sep Queue<Task> finished concode_elem_sep CallBackProvider<P,T,C,E> provider concode_elem_sep Map<P,Task> tasks concode_elem_sep P parameter concode_elem_sep List<C> callbacks concode_elem_sep int STAGE_1_COMPLETE concode_elem_sep T object concode_field_sep void init concode_elem_sep void finishActive concode_elem_sep boolean set concode_elem_sep T skipQueue concode_elem_sep void run concode_elem_sep void setActiveThreads concode_elem_sep boolean initAsync concode_elem_sep void callStage3 concode_elem_sep void initSync concode_elem_sep void callStage2 concode_elem_sep T callStage1 concode_elem_sep T get concode_elem_sep T get concode_elem_sep void finish concode_elem_sep T getSkipQueue concode_elem_sep T getSkipQueue concode_elem_sep T getSkipQueue concode_elem_sep T getSkipQueue
void function ( P arg0 , C arg1 ) { Task loc0 = tasks . get ( arg0 ) ; if ( loc0 == null ) { tasks . put ( arg0 , loc0 = new Task ( arg0 ) ) ; pool . execute ( loc0 ) ; } loc0 . callbacks . add ( arg1 ) ; }