GarbageThread and KillerThread: provide access to semaphore on stop()