From ae17135a075bec90f540d322718465e43bf766c1 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 1 Nov 2016 11:14:16 -0700 Subject: [PATCH] lock around quit flag to avoid shutdown race --- libraries/audio-client/src/AudioClient.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 5208b893ac..9bfdfe08c4 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -85,18 +85,26 @@ public: } void beforeAboutToQuit() { + Lock lock(_checkDevicesMutex); _quit = true; } void run() override { - while (!_quit) { + for (;;) { + { + Lock lock(_checkDevicesMutex); + if (_quit) { + break; + } + _audioClient->checkDevices(); + } QThread::msleep(DEVICE_CHECK_INTERVAL_MSECS); - _audioClient->checkDevices(); } } private: AudioClient* _audioClient { nullptr }; + Mutex _checkDevicesMutex; bool _quit { false }; };