code: func (t *Tx) reclaim(newNext uint64) bool {
  	for int64(newNext-t.head) > 0 {
  		// Can't reclaim if slot is not free.
  		header := t.p.readAtomic(t.head)
  		if header&slotFree == 0 {
  			return false
  		}
  
  		payloadSize := header & slotSizeMask
  		newHead := t.head + payloadToSlotSize(payloadSize)
  
  		// Check newHead is within bounds and valid.
  		if int64(newHead-t.tail) > int64(jump) || newHead&offsetMask >= uint64(len(t.p.buffer)) {
  			return false
  		}
  
  		t.head = newHead
  	}
  
  	return true
  }
docs: // reclaim attempts to advance the head until at least newNext. If the head is
  // already at or beyond newNext, nothing happens and true is returned; otherwise
  // it tries to reclaim slots that have already been consumed by the receive end
  // of the pipe (they will be marked as free) and returns a boolean indicating
  // whether it was successful in reclaiming enough slots.