Хочу по-человечески завершать демон при поступлении сигнала, но accept всю малину портит: т.к. он блокирует основной поток, ничего с ним поделать не могу.
Есть ли вариант как-то проверять наличие подключений и лишь потом, если они есть, вызывать accept?
А то пока только такой костыль на ум приходит: запустить accept в отдельный поток, а в main() тупо пасти флаг глобального выхода, и если этот флаг установлен, то посылать этому потоку pthread_cancel. Но как-то это кажется костыльным...
Возможно ли сделать select на сокет перед тем, как accept вызывать?