diff --git a/repertory/librepertory/src/comm/packet/packet_server.cpp b/repertory/librepertory/src/comm/packet/packet_server.cpp index d714e7da..cc005ced 100644 --- a/repertory/librepertory/src/comm/packet/packet_server.cpp +++ b/repertory/librepertory/src/comm/packet/packet_server.cpp @@ -54,14 +54,16 @@ packet_server::~packet_server() { event_system::instance().raise(function_name, "packet_server"); - std::thread([this]() { - for (std::size_t i = 0U; i < service_threads_.size(); i++) { + std::thread stop_all([this]() { + for (std::size_t idx = 0U; idx < service_threads_.size(); ++idx) { io_context_.stop(); } - }).detach(); + }); server_thread_->join(); server_thread_.reset(); + stop_all.join(); + event_system::instance().raise(function_name, "packet_server"); }