2011-02-02 1 views
2

В FreeBSD для получения параметров сокета TCP (в tcp_ctloutput() в tcp_usrreq.c), необходимо выполнить блокировку с INP_WLOCK (inp), как это делают параметры сокета. Поскольку получение опции TCP-сокета только считывает некоторые данные из блока управления tcp и не изменяет данные, мне любопытно, почему мы не используем блокировку чтения с INP_RLOCK (inp) для лучшей производительности.Почему FreeBSD получает параметр сокета TCP, необходимо блокировать блокировку записи?

ответ

1

Если вы не наложили на него блокировку записи, параметры, возможно, изменились при чтении, что приведет к фиктивным результатам.

Смежные вопросы