diff --git a/src/Stream/MessageWriter.cpp b/src/Stream/MessageWriter.cpp index f02e36a435285064d2a26dd6268360f0650b03fc..c81c7d9afde637827acd17af549268452285eaf2 100644 --- a/src/Stream/MessageWriter.cpp +++ b/src/Stream/MessageWriter.cpp @@ -56,7 +56,12 @@ void MessageWriter::addMessage(Message const &Msg, bool is_buffered_message) { [=]() { writeMsgImpl(Msg.DestPtr, Msg.FbMsg, is_buffered_message); }); } -void MessageWriter::stop() { RunThread.store(false); } +void MessageWriter::stop() { + RunThread.store(false); + if (WriterThread.joinable()) { + WriterThread.join(); + } +} void MessageWriter::writeMsgImpl(WriterModule::Base *ModulePtr, FileWriter::FlatbufferMessage const &Msg, diff --git a/src/Stream/MessageWriter.h b/src/Stream/MessageWriter.h index e7e75687c7ab04bec64be496806ae2d8d2dd78a4..e0c0143de5c3017d04665dd1979675034c512267 100644 --- a/src/Stream/MessageWriter.h +++ b/src/Stream/MessageWriter.h @@ -42,7 +42,7 @@ public: /// \brief Tell the writer thread to stop. /// - /// Non blocking. The thread might take a while to stop. + /// Blocking. The thread might take a while to stop. void stop(); using ModuleHash = size_t;