This series of patches looks good to me at this point, enough that I think it's fair to drop the RFC from the title. I feel like 1-2 are kind of awkward split the way they are—and the fact that you have to edit an earlier comment shows this. I might recommend merging those two. Sorry for the persistent slowness in review—this is a hard patch set, but I should try to be more prompt regardless. I just have one more nitpick: On 2/4/22 14:52, Jinoh Kang wrote:
- /* recv() returned EWOULDBLOCK, i.e. no data available yet */ - if (status == STATUS_DEVICE_NOT_READY && !sock->nonblocking) + /* Synchronous, *blocking* I/O requested? */ + if (!req->force_async && !sock->nonblocking) { /* Set a timeout on the async if necessary. *
Note that the subsequent comment about when we set a timeout is pretty much superfluous now. The client isn't giving us a status anymore, and I think we don't need the comment anyway—the code is pretty clear now, and matches the expectation of when timeouts are set.