question: basic cache sweeper thread . note : envoking programs do not need to explicitly call this . concode_field_sep ConcurrentHashMap<K,WorkingSetObject<V>> theCache concode_elem_sep AtomicBoolean okFlag concode_elem_sep long numSlowSearches concode_elem_sep long numHits concode_elem_sep long mySweepInterval concode_elem_sep Logger awscLog concode_elem_sep Thread myThread concode_elem_sep long numMiss concode_elem_sep String defaultName concode_elem_sep ReentrantReadWriteLock lock concode_elem_sep String breadcrumb concode_elem_sep SoftReference<V> obj concode_elem_sep boolean usedThisCycle concode_elem_sep long MINIMUM_SLEEPTIME concode_elem_sep long numSweeps concode_field_sep void quickDump concode_elem_sep String getName concode_elem_sep ImmutableSet<V> getValues concode_elem_sep HashMap<String,Object> getStatistics concode_elem_sep void start concode_elem_sep boolean isEmpty concode_elem_sep void clear concode_elem_sep void ensureRunning concode_elem_sep V put concode_elem_sep V remove concode_elem_sep void processPass concode_elem_sep int size concode_elem_sep long getNaptime concode_elem_sep void setThreadName concode_elem_sep V get concode_elem_sep V get concode_elem_sep void shutdown
target: void function ( ) { while ( okFlag . get ( ) ) { try { Thread . sleep ( mySweepInterval ) ; numSweeps ++ ; processPass ( ) ; } catch ( InterruptedException loc0 ) { okFlag . set ( false ) ; } } }