Skip to content

Commit

Permalink
core: use a lock_guard for loopRequestMutex
Browse files Browse the repository at this point in the history
fixes #207
  • Loading branch information
vaxerski committed Apr 21, 2024
1 parent bb44921 commit 9ace6f9
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions src/core/PortalManager.cpp
Expand Up @@ -420,13 +420,11 @@ void CPortalManager::startEventLoop() {

while (1) { // dbus events
// wait for being awakened
m_sEventLoopInternals.loopRequestMutex.unlock(); // unlock, we are ready to take events

std::unique_lock lk(m_sEventLoopInternals.loopMutex);
if (m_sEventLoopInternals.shouldProcess == false) // avoid a lock if a thread managed to request something already since we .unlock()ed
m_sEventLoopInternals.loopSignal.wait(lk, [this] { return m_sEventLoopInternals.shouldProcess == true; }); // wait for events

m_sEventLoopInternals.loopRequestMutex.lock(); // lock incoming events
std::lock_guard<std::mutex> lg(m_sEventLoopInternals.loopRequestMutex);

if (m_bTerminate)
break;
Expand Down

0 comments on commit 9ace6f9

Please sign in to comment.