Add tcp.Listener (#15)

* begin reviewing TCP listener

* begin adding listener tests

* adding TestExchange implementation

* split out legacy and Step tests

* move listener to tcp package

* fix up tcp tests taking very long

* add xnet.TCPPool and work on TCPPool semantics

* xnet: TCPPool only accepts established connections

* xnet: getting to bottom of panic in xnet.Listener

* xnet: improve listener tests

* fix several data races in testing fixtures

* fix more synchronization things in listener test

* finalize tcplistener test
This commit is contained in:
Pat Whittingslow
2026-01-03 12:41:57 -03:00
committed by GitHub
parent 5731a378dd
commit 018f9258ac
19 changed files with 2288 additions and 849 deletions
+1 -1
View File
@@ -533,7 +533,7 @@ func (tcb *ControlBlock) Close() (err error) {
err = errConnNotExist
case StateCloseWait:
tcb._state = StateLastAck
tcb.pending = [2]Flags{FlagFIN, FlagACK}
tcb.pending = [2]Flags{FlagFIN | FlagACK, 0}
case StateListen, StateSynSent:
// In Listen State there is no established connection.
// In SynSent the remote endpoint is not yet synchronized and upon receiving an RST will abort connection.