Добрый день
Есть программы с примерно такой структурой (упрощенно):
bind()
pool = create_thread_pool()
while (slaveSocket = accept())
pool.serve(slaveSocket)
Нужно уметь прервать главный цикл. Все осложняется тем что bind/accept
и прочие это не просто bsd сокеты, а всякие wrapper'ы из gSOAP (т.е.
soap_accept и т.д.). Из чего-то по теме нашел только soap_poll().
Соотв. вопрос:
Насколько неправильным является решение:
bind()
set_accept_timeout(3s)
pool = create_thread_pool()
while (slaveSocket = accept())
if not_valid(slaveSocket) and should_stop
return
pool.serve(slaveSocket)
Если оно является неправильным, то почему? Какие наихудщие вещи могут
происходить в этом случае? Как может выглядеть альтернатива?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Консольный обмен сообщениями (2017)
- Форум передача списка процессов сервера клиенту (2015)
- Форум Сокеты, Передача данных, C/C++ (2006)
- Форум Пример программы UDP-сервера (2014)
- Форум Порт не освобождается после закрытия приложения (2017)
- Форум Сервер на СИ (2015)
- Форум Accept (2002)
- Форум Клиент-Сервер Socket linux (Система обмена сообщениями) (2014)
- Форум прерывания (2008)
- Форум Прерывание (2003)