如何解决注册 IO 中的内存屏障
我使用了 RIO + IOCP + 多线程 + TCP。
RIODequeueCompletion() 函数是否会产生内存屏障(获取或完整栅栏)和 RIOSend/RIOReceive 函数会产生内存屏障(释放或完全围栏)?
我是否需要在调用 RIODequeueCompletion() 后创建内存屏障(获取)以查看 RIO 缓冲区中的新接收数据?
第二个问题: - 我有一个带有字段 packet_cnt 的结构连接。
struct connection
{
int packet_cnt = 0;
....
}
connection *conn = new connection[ХХХ];//One instance by one TCP connection.
In Thread A:
conn[0].packet_cnt += 5;
//is need release barrier or RIOSend/RIOReceive does it?
put &conn[0] into RIOSend/RIOReceive functions (in RequestContext param)
Thread B catched a completions RIOSend/RIOReceive from Thread A,with conn[0] instance by calling RIODequeueCompletion().
//is need acquire barrier or RIODequeueCompletion() does it?
conn[0].packet_cnt == 5 ???
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。