code: def put_nowait(self, item):
          
          self._parent._check_closing()
          with self._parent._sync_mutex:
              if self._parent._maxsize > 0:
                  if self._parent._qsize() >= self._parent._maxsize:
                      raise AsyncQueueFull
  
              self._parent._put_internal(item)
              self._parent._notify_async_not_empty(threadsafe=False)
              self._parent._notify_sync_not_empty()
docs: Put an item into the queue without blocking.
  
          If no free slot is immediately available, raise QueueFull.