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 */