Написал простой сервер на C. Принцип работы - главный поток ждёт (функция accept()) пока к нему присоединится клиент, как только это происходит - создаёт поток который работает с клиентом, и опять ждёт нового клиента и т.д.
Требуется, чтобы при получении сигнала (например SIGINT), главный поток переставал ждать присоединения.
Кто представляет - как такое можно сделать?
Единственное, что я смог придумать, это
1. Заставить обработчик сигнала изменять переменную-флаг.
2. Сделать слушающий сокет не блокируемым, с помощью select() ждать несколько секунд присоединения, затем проверять значение флага и опять ждать и т.д.
Но это, как говорится, не труЪ. Хотелось бы, чтобы можно было "влиять" на select() также как это делают файловые дискрипторы :). Но возможно ли такое?

Ответ на:
комментарий
от anonymous


Ответ на:
комментарий
от Die-Hard




Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как бы организовать ожидание завершения процесса заданное время? (2004)
- Форум Завершение потомков при завершении родителя (2010)
- Форум завершение работы (2010)
- Форум Завершение процесса (2010)
- Форум завершение сеанса (2008)
- Форум порты завершения (2008)
- Форум завершение потомков (2001)
- Форум Завершение сервера... (2003)
- Форум завершение печати (2007)
- Форум Правильное завершение (2007)