Опрос вызывает сбой - PullRequest
       5

Опрос вызывает сбой

0 голосов
/ 22 июля 2010

Я получаю сбой со следующими значениями: -

Опрос - это системный вызов, который дает "errno" как 24 (EMFILE), а struct pollfd имеет значения "fd = 1022, events = 1, revents= 32 "

Здесь мы просыпаемся по" fd = 1022 ", тогда почему он показывает" errno "как 24 (EMFILE / Открыто слишком много файлов /)

У меня есть несколько потоков, которые работают в бесконечном цикле.

1 Ответ

2 голосов
/ 23 июля 2010

На моей машине ulimit -a показывает 1024 для максимально открытых файлов.1022 действительно близко к этому пределу.

У вас есть код, который пытается открыть файл и не работает?Вероятно, это какой-то другой системный вызов, который устанавливает errno в значение EMFILE.

Убедитесь, что вы обрабатываете возвращаемые значения из кода, открывающего fds.

Убедитесь, что вы не пропускаете файловые дескрипторы где-нибудь.

Если этот код запускается с соответствующими привилегиями, вы можете попробовать увеличить максимальное число открытых файлов с помощью ulimit -n или setrlimit().

...