def METHOD_NAME(self, item):
    """Put an item into the queue without blocking.
    If no free slot is immediately available, raise QueueFull.
    """
    if self.full():
        raise QueueFull
    self._put(item)
    self._unfinished_tasks += 1
    self._finished.clear()
    self._wakeup_next(self._getters)