Ситуация примерно следующая. Есть мультитредовое приложение, работает
под NPTL only (LinuxThreads меня не интересует). На сигнал SIGRT_3
навешивается некоторое действие. При этом выставляется флаг sigaction
SA_RESTART. Один из потоков приложения садится на poll. Вся прилада
обрабатывает сетевые http-запросы (для их генерации я использую Apache
Benchmark, ab).
Так вот, через некоторое время очередной вызов poll возвращает -1,
errno = EINTR, и в логе strace случается такая запись:
poll([{fd=15, events=POLLIN}, {fd=30, events=POLLOUT}], 2, 0) = -1 EINTR (Interrupted system call)
--- SIGRT_3 (Real-time signal 2) @ 0 (0) ---
До этого в том же логе есть только записи
rt_sigaction(SIGRT_3, {0x404314e0, ~[RTMIN], SA_RESTART|SA_SIGINFO}, {SIG_DFL}, 8) = 0
..................................................
tgkill(12740, 12743, SIGRT_3) = 0
..................................................
poll([{fd=15, events=POLLIN, revents=POLLIN}, {fd=18, events=POLLOUT, revents=POLLOUT}, {fd=21, events=POLLIN, revents=POLLIN}, {fd=20, events=POLLIN, revents=POLLIN}, {fd=22, events=POLLIN}, {fd=19, events=POLLIN}], 6, 0) = 4
..................................................
--- SIGRT_3 (Real-time signal 2) @ 0 (0) ---
..................................................
То есть все идет как задумано...
Ну как может poll порваться-то? Я не просекаю... Может быть, это
баг в ядре? У меня 2.6.7, 2.6.8 - происходит одно и то же. NPTL
версии 0.61.
Заранее спасибо за любую помощь!
Похожие темы
- Форум Зависший процесс. Вывод strace. (2013)
- Форум Сегфолтится Firefox-15.0.1 (2012)
- Форум Cups грузит процессор (2014)
- Форум Не запускается LibreOffice (2024)
- Форум Некий прокси сервер. Проблема с пересылкой пакетов. Lua (2020)
- Форум Сравнение производительности php: FreeBSD vs Gentoo Linux (2013)