套接字在EWOULDBLOCK之后但在epoll_wait之前是否可写?

时间:2016-08-16 00:03:38

标签: linux sockets epoll

我有一个基于反应堆的设计,其中在epoll_wait中轮询了许多套接字文件描述符。

为了优化延迟而不是吞吐量,在写入套接字时,我们尝试立即直接写入文件描述符。

如果是EWOULDBLOCK,我们会缓冲未写入的数据,然后等待套接字再次变为可写。

下次我们的epoll_wait将我们的文件描述符返回为可写时,然后我们从缓冲的数据发送。

问题是,套接字是否可以写 之后我们收到EWOULDBLOCK之前我们会调用epoll_wait吗?

也就是说,如果我们进行2次 write 次调用,其中第一次 write 被部分写入,其余部分被缓冲,然后执行尝试立即写入的第二个 write ,套接字可以在第一次和第二次写入调用之间变为可写,并且我们最终在远端接收到无序数据?

0 个答案:

没有答案