code: def put (self, item):
          
          with self.mutex:
              self._put(item)
              self.not_empty.notify()
docs: Put an item into the queue.
          Block if necessary until a free slot is available.