Uses atomic booleans for thread safety

Replaces mutex with atomic booleans in DixonNodeState for improved thread safety. This eliminates the need for explicit locking in the connected_ and brainRunning_ accessors, reducing overhead and potential for deadlocks.

Updates version file.
This commit is contained in:
Russell Gilbert 2026-02-11 07:56:57 +00:00
parent 1da934ba3c
commit 2ccbd2f307
3 changed files with 4 additions and 9 deletions

View file

@ -8,24 +8,20 @@ DixonNodeState& DixonNodeState::instance()
void DixonNodeState::setConnected(bool value)
{
std::lock_guard<std::mutex> lock(mutex_);
connected_ = value;
}
bool DixonNodeState::isConnected() const
{
std::lock_guard<std::mutex> lock(mutex_);
return connected_;
}
void DixonNodeState::setBrainRunning(bool value)
{
std::lock_guard<std::mutex> lock(mutex_);
brainRunning_ = value;
}
bool DixonNodeState::isBrainRunning() const
{
std::lock_guard<std::mutex> lock(mutex_);
return brainRunning_;
}

View file

@ -1,5 +1,5 @@
#pragma once
#include <mutex>
#include<atomic>
class DixonNodeState
{
@ -21,7 +21,6 @@ private:
DixonNodeState() = default;
~DixonNodeState() = default;
mutable std::mutex mutex_;
bool connected_ = false;
bool brainRunning_ = false;
std::atomic<bool> connected_ = false;
std::atomic<bool> brainRunning_ = false;
};

View file

@ -1 +1 @@
1.0.10
1.0.12