потоки (блокируются при чтении в режиме блокировки) перед переходом на неблокирующую. Как указал @Maxim, разделяющий код функции, которая не пробуждает потоки, заблокированные потоки будут пробуждены только после завершения записи (данные доступны).

есно о поведении сокета при блокирующих и неблокирующих действиях. Что происходит с блокировкой потоков в сокете при изменении режима блокировки сокета? Вот сценарий; thread1 (T1) создает сокет UDP и

fd = socket(AF_INET , SOCK_DGRAM, 0);

T1 ждет (спит) для получения

recv(fd, buf , sizeof(buf) , 0);

и thread2 (T2) меняет режим сокета на неблокирующий, прежде чем сокет получит какие-либо данные

fcntl(fd, F_SETFL, O_NONBLOCK);

что происходит с T1? Это сигнализируется / пробуждается, потому что сокет больше не блокирует?

Ответы на вопрос(0)

Ваш ответ на вопрос