diff options
Diffstat (limited to 'messagebus')
-rw-r--r-- | messagebus/src/vespa/messagebus/replygate.cpp | 4 | ||||
-rw-r--r-- | messagebus/src/vespa/messagebus/replygate.h | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/messagebus/src/vespa/messagebus/replygate.cpp b/messagebus/src/vespa/messagebus/replygate.cpp index 1b37a542d49..d1bd6ef05c7 100644 --- a/messagebus/src/vespa/messagebus/replygate.cpp +++ b/messagebus/src/vespa/messagebus/replygate.cpp @@ -22,13 +22,13 @@ ReplyGate::handleMessage(Message::UP msg) void ReplyGate::close() { - _open = false; + _open.store(false, std::memory_order_relaxed); } void ReplyGate::handleReply(Reply::UP reply) { - if (_open) { + if (_open.load(std::memory_order_relaxed)) { IReplyHandler &handler = reply->getCallStack().pop(*reply); handler.handleReply(std::move(reply)); } else { diff --git a/messagebus/src/vespa/messagebus/replygate.h b/messagebus/src/vespa/messagebus/replygate.h index d432afa4b8b..0c487de3ecf 100644 --- a/messagebus/src/vespa/messagebus/replygate.h +++ b/messagebus/src/vespa/messagebus/replygate.h @@ -6,6 +6,7 @@ #include "imessagehandler.h" #include "ireplyhandler.h" #include <vespa/vespalib/util/referencecounter.h> +#include <atomic> namespace mbus { @@ -26,7 +27,7 @@ class ReplyGate : public vespalib::ReferenceCounter, { private: IMessageHandler &_sender; - bool _open; + std::atomic<bool> _open; public: /** |