Есть приложение на С++, которое использует стороннюю библиотеку.
Специфика работы библиотеки такова, что в процессе работы может понадобиться большое количество потоков (300-500). При этом библиотека не устанавливает размер стека при создании потока (pthread).
Проблема в том, что в системе, на которой будет работать мое приложение ulimit -s равен 8192, поэтому процесс не может создать более 255 потоков.
Попытки использовать setrlimit в main() бесполезны, т.к. NPTL смотрит RLIMIT_STACK до передачи управления в main при инициализации программы.
Сейчас решаю проблему запуском скрипта (допустим, run.sh) из двух строчек:
ulimit -s 1024
запуск приложения
Может это как-то повлиять на лимиты для других процессов? Есть ли способ программно изменить размер стека по умолчанию для моей программы или какое-нибудь другое решение, более изящное, чем run.sh?
Ответ на:
Отвечаю на твой вопрос
от ttnl
Ответ на:
комментарий
от anonymous
Ответ на:
Отвечаю на твой вопрос
от ttnl
Ответ на:
комментарий
от ttnl
Ответ на:
комментарий
от nocomer
Ответ на:
комментарий
от true_admin
Ответ на:
комментарий
от nocomer
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум количество потоков proftpd (2006)
- Форум Настройка количества потоков nfsd (2018)
- Форум Количество доступных потоков pthread (2017)
- Форум Как ограничить количество потоков NodeJS? (2016)
- Форум Как задать количество потоков процессу. (2012)
- Форум Максимальное количество процессов и потоков (2007)
- Форум Апач, снять ограничение на количество потоков. (2016)
- Форум Макимально ограничить выделение памяти под файловый кэш (2006)
- Форум [SSD] Указать количество потоков чтения/записи на диск (2011)
- Форум Ограничение на количество потоков (threads) в docker контейнерах (2019)