Пользуюсь boost beast 1.74.0. в другом потоке я пытаюсь закрыть веб-сокет, но код не работает в acceptor.accept (сокет, конечная точка), и я получаю сигнал: SIG32 (событие 32 в реальном времени) после закрытия вызова.
Часть кода для прослушивания соединения. Что мне нужно изменить, чтобы правильно прервать прием службы?
...
_acceptor = &acceptor;
_keepAlive = true;
while (_keepAlive) {
tcp::socket socket{ioc};
// Block until we get a connection
acceptor.accept(socket, endpoint);
// Launch the session, transferring ownership of the socket
std::thread(
&WebSocketServer::doSession,
std::move(socket),
this,
this,
getHeaderServer()
).detach();
}
закрыть вызов функции другим потоком
void WebSocketServer::close() {
if (_acceptor != nullptr) this->close();
_keepAlive = false;
}