如果ioservice忙于处理回调,async_receive_from会写入缓冲区吗?

时间:2014-09-18 08:07:54

标签: c++ boost boost-asio

所以,假设我有async_recv_from

的以下回调
void recv_callback(error_code&, std::size_t len) {
    socket.async_recv_from(buffer,endpoint,recv_callback);
    handle(buffer);
}

所以,我在回调中做的第一件事就是请求更多接收,但由于ioservice忙于处理回调,我可能在回调完成之前我的缓冲区不会被覆盖。这是对的吗?

1 个答案:

答案 0 :(得分:0)

这取决于。

这取决于实际实现底层IO操作的方式。我认为一些操作系统可能实际上直接写入用户空间内存。

我总是切换实际的缓冲区。