code: func (l *Listener) Accept() (net.Conn, error) {
  	n, wq, err := l.ep.Accept()
  
  	if err == tcpip.ErrWouldBlock {
  		// Create wait queue entry that notifies a channel.
  		waitEntry, notifyCh := waiter.NewChannelEntry(nil)
  		l.wq.EventRegister(&waitEntry, waiter.EventIn)
  		defer l.wq.EventUnregister(&waitEntry)
  
  		for {
  			n, wq, err = l.ep.Accept()
  
  			if err != tcpip.ErrWouldBlock {
  				break
  			}
  
  			select {
  			case <-l.cancel:
  				return nil, errCanceled
  			case <-notifyCh:
  			}
  		}
  	}
  
  	if err != nil {
  		return nil, &net.OpError{
  			Op:   "accept",
  			Net:  "tcp",
  			Addr: l.Addr(),
  			Err:  errors.New(err.String()),
  		}
  	}
  
  	return NewConn(wq, n), nil
  }
docs: // Accept implements net.Conn.Accept.