From cbcb7b6370f5988bddcf52a6220c6e0324eeb5f8 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 14 Feb 2018 12:43:30 +0100 Subject: [PATCH] Fixed the synchronous messenger --- sdrbase/util/syncmessenger.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sdrbase/util/syncmessenger.cpp b/sdrbase/util/syncmessenger.cpp index 5b9032b40..611b8256e 100644 --- a/sdrbase/util/syncmessenger.cpp +++ b/sdrbase/util/syncmessenger.cpp @@ -33,16 +33,15 @@ int SyncMessenger::sendWait(Message& message, unsigned long msPollTime) { m_message = &message; m_mutex.lock(); - m_complete.testAndSetAcquire(0, 1); + m_complete.store(0); emit messageSent(); - while (!m_complete.testAndSetAcquire(0, 1)) + while (!m_complete.load()) { m_waitCondition.wait(&m_mutex, msPollTime); } - m_complete = 0; int result = m_result; m_mutex.unlock(); @@ -52,7 +51,7 @@ int SyncMessenger::sendWait(Message& message, unsigned long msPollTime) void SyncMessenger::done(int result) { m_result = result; - m_complete = 0; + m_complete.store(1); m_waitCondition.wakeAll(); }