code: def register_dn(self):
          
          with self.regcond:
              self.runningcount -= 1
              tid = thread.get_ident()
              self.tids.remove(tid)
              self.logger.debug("register_dn: count_dn is %d" % self.runningcount)
              self.logger.debug("register_dn: remaining: %s" % str(self.tids))
              if self.runningcount == 0:
                  self.status = 'down'
              self.regcond.notify()
docs: Called by WorkerThread objects to register themselves.
  
          Acquire the condition variable for the WorkerThread objects.
          Decrement the running-thread count.  If we are the last thread to
          start, release the ThreadPool thread, which is stuck in start()