'Re-put an item back into the requeue.
Re-putting an item does not increase the number of outstanding
tasks, so the reput item should be uniquely associated with an
item that was previously removed from the requeue and for which
TaskDone has not been called.
Args:
item: An item to add to the requeue.
block: Whether to block if the requeue is full.
timeout: Maximum on how long to wait until the queue is non-full.
Raises:
Queue.Full is the queue is full and the timeout expires.'

def reput(self, item, block=True, timeout=None):

    def ReputAction():
        self.requeue.put(item, block=False)
    self._DoWithTimeout(ReputAction, Queue.Full, self.get_cond, self.put_cond, self.lock, timeout=timeout, block=block)
