sockets - 为什么 FreeBSD 获取 TCP 套接字选项需要锁定写锁?

标签 sockets tcp locking freebsd

在 FreeBSD 中,为了获取 TCP 套接字选项(在 tcp_usrreq.c 中的 tcp_ctloutput() 中),它需要像设置套接字选项一样使用 INP_WLOCK(inp) 进行锁定。由于获取 TCP 套接字选项仅从 tcp 控制 block 读取一些数据并且不更改数据,我很好奇为什么我们不使用 INP_RLOCK(inp) 的读取锁定以获得更好的性能。

最佳答案

如果您不对其施加写锁定,则选项可能会在读取时更改,从而产生虚假结果。

关于sockets - 为什么 FreeBSD 获取 TCP 套接字选项需要锁定写锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4880817/

相关文章:

c++ - 监听时出现 Winsock 错误 10022

.net - .NET 中的异步 TCP 通信

c++ - boost 从 tcp 套接字接收数据

linux - 如何拦截tcp数据包并在飞行中修改?

c++ - QT中低TCP连接性能问题

c# - 如何使用套接字发送或返回 List<T>

java - 过滤器锁定算法

python - 对 fork 进行适当的日志记录模块清理(多处理模块)

javascript - Ratchet Websocket Apache2 SSL 无法连接到 PHP websocket

selenium - Nunit 在运行测试套件时锁定