программа получила сигнал SIGIO - PullRequest
0 голосов
/ 14 сентября 2011

Я вижу следующую ошибку в файле Nginx error.log,

[уведомление] 12451 # 0: принят сигнал 29 (SIGIO)

Iхотите знать, в каком случае программа получает SIGIO?

1 Ответ

2 голосов
/ 26 сентября 2011

Для асинхронного кода сигнализации необходимо выполнить следующие действия.

Сначала вы должны разрешить вашему процессу получать SIGIO, а затем ваш сокет или канал должен быть переведен в асинхронный режим.

Поиск этих строк в вашем коде

//allow the process to receive SIGIO
fcntl(fd, F_SETOWN, getpid());

и

//Make socket/pipe non-blocking
fcntl(fd, F_SETFL, FASYNC);

или

//Make socket/pipe non-blocking
fcntl(fd, F_SETFL, O_NONBLOCK);

Ключевые слова для поиска: F_SETOWN , FASYNC и O_NONBLOCK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...