parameters: (self)
docstring: Indicate that a formerly enqueued task is complete.
  
          Used by Queue consumer threads.  For each get() used to fetch a task,
          a subsequent call to task_done() tells the queue that the processing
          on the task is complete.
  
          If a join() is currently blocking, it will resume when all items
          have been processed (meaning that a task_done() call was received
          for every item that had been put() into the queue).
  
          Raises a ValueError if called more times than there were items
          placed in the queue.
docstring_summary: Indicate that a formerly enqueued task is complete.
docstring_tokens: Indicate that a formerly enqueued task is complete .
function: def task_done(self):
          """Indicate that a formerly enqueued task is complete.
  
          Used by Queue consumer threads.  For each get() used to fetch a task,
          a subsequent call to task_done() tells the queue that the processing
          on the task is complete.
  
          If a join() is currently blocking, it will resume when all items
          have been processed (meaning that a task_done() call was received
          for every item that had been put() into the queue).
  
          Raises a ValueError if called more times than there were items
          placed in the queue.
          """
          self.all_tasks_done.acquire()
          try:
              unfinished = self.unfinished_tasks - 1
              if unfinished <= 0:
                  if unfinished < 0:
                      raise ValueError('task_done() called too many times')
                  self.all_tasks_done.notify_all()
              self.unfinished_tasks = unfinished
          finally:
              self.all_tasks_done.release()
function_tokens: def task_done ( self ) : self . all_tasks_done . acquire ( ) try : unfinished = self . unfinished_tasks - 1 if unfinished <= 0 : if unfinished < 0 : raise ValueError ( 'task_done() called too many times' ) self . all_tasks_done . notify_all ( ) self . unfinished_tasks = unfinished finally : self . all_tasks_done . release ( )