From 4dd1319a9e7f612918626ef4fe3cea897376fdeb Mon Sep 17 00:00:00 2001 From: abitmore Date: Wed, 6 May 2020 13:07:24 -0400 Subject: [PATCH] Refactor destructor of websocket_server_impl --- src/network/http/websocket.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/network/http/websocket.cpp b/src/network/http/websocket.cpp index c61c190..f9e1527 100644 --- a/src/network/http/websocket.cpp +++ b/src/network/http/websocket.cpp @@ -361,13 +361,15 @@ namespace fc { namespace http { // in another thread, perhaps we need to wait for them (especially the one in set_open_handler) // being processed. Otherwise `_closed.wait()` may hang. if( _connections.size() ) + { _closed = promise::create(); - auto cpy_con = _connections; - for( auto item : cpy_con ) - _server.close( item.first, 0, "server exit" ); + auto cpy_con = _connections; + for( auto& item : cpy_con ) + _server.close( item.first, 0, "server exit" ); - if( _closed ) _closed->wait(); + _closed->wait(); + } } typedef std::map > con_map;