By: Tom Sydney Kerckhove <syd@cs-syd.eu>
warp: read the errno, not the error type, for a closed listener Deciding whether the accept loop ends quietly was done on ioeGetErrorType == InvalidArgument. That is two errnos, not one: EBADF, the closed listening socket this is about, and EINVAL, a socket that is not listening. The second is a fault the caller wants raised, and it was being swallowed as if someone had asked for a shutdown. Check EBADF directly instead, through the isErrno helper the branches above already use. It is exact rather than nearly right: 'close' swaps the descriptor for -1 before the syscall, so an accept() racing it has nothing to find but EBADF. Asked for by @kazu-yamamoto in review, and it drops this PR's reliance on InvalidArgument standing in for a lost listener, which is what #873 objects to.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 0s | 2s | 2s | 2s | 0s |
| Eval | - | - | - | - | - |
| Build | - | - | - | - | - |
| Suite | 0s | 2s | 2s | 2s | 0s |