diff options
Diffstat (limited to 'libtransport/src/hicn/transport/core/memif_connector.cc')
-rw-r--r-- | libtransport/src/hicn/transport/core/memif_connector.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libtransport/src/hicn/transport/core/memif_connector.cc b/libtransport/src/hicn/transport/core/memif_connector.cc index b3785e5c3..6c5f2ff5f 100644 --- a/libtransport/src/hicn/transport/core/memif_connector.cc +++ b/libtransport/src/hicn/transport/core/memif_connector.cc @@ -38,7 +38,6 @@ MemifConnector::MemifConnector(PacketReceivedCallback &&receive_callback, timer_set_(false), send_timer_(std::make_unique<utils::FdDeadlineTimer>(event_reactor_)), io_service_(io_service), - work_(std::make_unique<asio::io_service::work>(io_service_)), packet_counter_(0), memif_connection_({}), tx_buf_counter_(0), @@ -74,6 +73,8 @@ void MemifConnector::connect(uint32_t memif_id, long memif_mode) { createMemif(memif_id, memif_mode, nullptr); + work_ = std::make_unique<asio::io_service::work>(io_service_); + while (is_connecting_) { MemifConnector::main_event_reactor_.runOneEvent(); } @@ -402,7 +403,7 @@ void MemifConnector::close() { if (!closed_) { closed_ = true; event_reactor_.stop(); - io_service_.stop(); + work_.reset(); if (memif_worker_ && memif_worker_->joinable()) { memif_worker_->join(); |