В бесконечном цикле я принимаю новые подключения, но мне нужен выбор, чтобы остановить этот сервер, поэтому я хочу использовать ctrl+c (SIGINT). Когда я нажимаю ее, он вызывает мой обработчик сигнала, но не прерывает вызов приема, поэтому проверка, если прерывание истинно, не оценивается (когда клиент не подключается, поэтому прием блокируется на долгое время).
sig_atomic_t interrupt;
.
.
.
signal(SIGINT, sigintHandler);
.
.
.
while(!interrupt) {
server.accept();
}
.
.
.
void sigintHandler(int param) {
interrupt = 1;
}