From 4592d53ed5553b7a8e7059a0849d8682b52cb347 Mon Sep 17 00:00:00 2001 From: Ezra Taimuty-Loomis Date: Tue, 12 May 2020 18:09:03 -0400 Subject: [PATCH] Safe termination of RTSP server --- src/server/AudioStreamServer.cpp | 7 ++++--- src/server/AudioStreamServer.h | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/server/AudioStreamServer.cpp b/src/server/AudioStreamServer.cpp index e5fcba3..8e9e3ad 100644 --- a/src/server/AudioStreamServer.cpp +++ b/src/server/AudioStreamServer.cpp @@ -89,16 +89,17 @@ void AudioStreamServer::start(){ } } + _eventLoopWatch = 0; - // TODO currently no way to terminate this thread in a friendly manner _serverThread = std::thread([this]{ setThreadName("RTSP Server"); - _rtspServer->envir().taskScheduler().doEventLoop(); // does not return + _rtspServer->envir().taskScheduler().doEventLoop(&_eventLoopWatch); // does not return }); } void AudioStreamServer::stop() { - + _eventLoopWatch = 1; + _serverThread.join(); } } /* namespace piscan */ diff --git a/src/server/AudioStreamServer.h b/src/server/AudioStreamServer.h index cf7abe2..9705436 100644 --- a/src/server/AudioStreamServer.h +++ b/src/server/AudioStreamServer.h @@ -31,6 +31,7 @@ private: std::thread _serverThread; RTSPServer* _rtspServer; + char volatile _eventLoopWatch; }; } /* namespace piscan */