LINUX.ORG.RU

poll и FIFO

 ,


0

1

Что-то никак не могу сообразить, как обработать событие POLLHUP, полученное от poll, когда отслеживается дескриптор FIFO на чтение. Стоит только записывающему процессу закрыть FIFO, как понятное дело возникает это событие. Последующие вызовы poll приводят сразу к немедленному возврату из него с установленным событием POLLHUP.

Получается единственный вариант: получил POLLHUP, закрыл fifo, снова открыл fifo, пошел на новую итерацию?

Получается единственный вариант: получил POLLHUP, закрыл fifo, снова открыл fifo, пошел на новую итерацию?

Да. Как может быть иначе? AFAIK, на сокетах то же самое.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

С сокетами как-то все более очевидно, а с FIFO я уж сто лет как работал - все забыл нафиг.

zloy_starper ★★★
() автор топика

получил POLLHUP, закрыл fifo, снова открыл fifo, пошел на новую итерацию?

Точно нет. У меня читатель запускался один раз, в демоне. Писатели же были кратковременными, - они подключались, записывали пару десятков байт и сразу отключались. Но я читателем pollhup не проверял, я просто читал из fifo.

Sorcerer ★★★★★
()
Последнее исправление: Sorcerer (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.