diff --git a/repertory/librepertory/include/types/repertory.hpp b/repertory/librepertory/include/types/repertory.hpp index 0d008ac4..ff8d5900 100644 --- a/repertory/librepertory/include/types/repertory.hpp +++ b/repertory/librepertory/include/types/repertory.hpp @@ -66,21 +66,37 @@ public: } [[nodiscard]] auto operator==(const atomic &at_data) const -> bool { + if (&at_data == this) { + return true; + } + mutex_lock lock(*mtx_); return static_cast(at_data) == data_; } [[nodiscard]] auto operator==(const data_t &data) const -> bool { + if (&data == &data_) { + return true; + } + mutex_lock lock(*mtx_); return data == data_; } [[nodiscard]] auto operator!=(const atomic &at_data) const -> bool { + if (&at_data == this) { + return false; + } + mutex_lock lock(*mtx_); return static_cast(at_data) != data_; } [[nodiscard]] auto operator!=(const data_t &data) const -> bool { + if (&data == &data_) { + return false; + } + mutex_lock lock(*mtx_); return data != data_; }