question: releases an object of type t , this must be called after the thread is done using a resource obtained by acquire . concode_field_sep AtomicInteger mCurrentCapacity concode_elem_sep ReentrantLock mTakeLock concode_elem_sep Condition mNotEmpty concode_elem_sep int mMaxCapacity concode_elem_sep ConcurrentLinkedQueue<T> mResources concode_field_sep T createNewResource concode_elem_sep T acquire concode_elem_sep T acquire concode_elem_sep void close
target: void function ( T arg0 ) { mResources . add ( arg0 ) ; try ( LockResource loc0 = new LockResource ( mTakeLock ) ) { mNotEmpty . signal ( ) ; } }