code: func (q *segmentQueue) enqueue(s *segment) bool {
  	q.mu.Lock()
  	r := q.used < q.limit
  	if r {
  		q.list.PushBack(s)
  		q.used += s.data.Size() + header.TCPMinimumSize
  	}
  	q.mu.Unlock()
  
  	return r
  }
docs: // enqueue adds the given segment to the queue.
  //
  // Returns true when the segment is successfully added to the queue, in which
  // case ownership of the reference is transferred to the queue. And returns
  // false if the queue is full, in which case ownership is retained by the
  // caller.