code: func (e *endpoint) readyToRead(s *segment) {
  	e.rcvListMu.Lock()
  	if s != nil {
  		s.incRef()
  		e.rcvBufUsed += s.data.Size()
  		e.rcvList.PushBack(s)
  	} else {
  		e.rcvClosed = true
  	}
  	e.rcvListMu.Unlock()
  
  	e.waiterQueue.Notify(waiter.EventIn)
  }
docs: // readyToRead is called by the protocol goroutine when a new segment is ready
  // to be read, or when the connection is closed for receiving (in which case
  // s will be nil).