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

时间:2011-02-02 22:45:24

标签: sockets tcp locking freebsd

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

1 个答案:

答案 0 :(得分:1)

如果你没有对它进行写锁定,那么在阅读时可能会改变选项,从而产生伪造的结果。