parameters: (self)
docstring: Indicate that a formerly enqueued task is complete.
  
          Used by queue consumers. 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 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 consumers. 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 ValueError if called more times than there were items placed in
          the queue.
          """
          if self._unfinished_tasks <= 0:
              raise ValueError('task_done() called too many times')
          self._unfinished_tasks -= 1
          if self._unfinished_tasks == 0:
              self._finished.set()
function_tokens: def task_done ( self ) : if self . _unfinished_tasks <= 0 : raise ValueError ( 'task_done() called too many times' ) self . _unfinished_tasks -= 1 if self . _unfinished_tasks == 0 : self . _finished . set ( )