code: func (rb *RingBuffer) Put(item interface{}) error {
  	_, err := rb.put(item, false)
  	return err
  }
docs: // Put adds the provided item to the queue.  If the queue is full, this
  // call will block until an item is added to the queue or Dispose is called
  // on the queue.  An error will be returned if the queue is disposed.