LINUX.ORG.RU

poll/select: приоритет write > read?


0

0

Пытаюсь сделать асинхронную обработку сокета через poll или select. Задача: обработать запрос, причем первым делом нужно послать данные, а потом прочитать ответ, если он есть.

Так вот, если ставить например poll на POLLOUT и POLLIN, то всегда почему-то выполняется условие POLLOUT, даже если пришел ответ.

Как разрулить ситуацию?

Асинхронная обработка через неблокирующий режим, установку fcntl и signals нежелательна.

anonymous

Насколько я знаю сокет ничем не блокируется если не разорвано соединение или не вызван shutdown(); Соответственно, POLLOUT будет всегда иметь место. Можно конечно ввести еще одну переменную чтобы проверять пришел ответ, или еще нет.

OxiD ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.