From 10ec28c5de9442fe93635ae76ca397d138f9e93c Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Sat, 13 Apr 2024 01:41:13 +0200 Subject: Add atomics --- deimos/core/status.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'deimos/core/status.h') diff --git a/deimos/core/status.h b/deimos/core/status.h index f866182..bf34833 100644 --- a/deimos/core/status.h +++ b/deimos/core/status.h @@ -5,6 +5,7 @@ namespace deimos { +// NOLINTNEXTLINE(performance-enum-size) enum class StatusCode : uint32_t { kOk = 0, @@ -14,14 +15,6 @@ enum class StatusCode : uint32_t kInternal, }; -struct StatusRep -{ - // @Todo Make this atomic - int32_t ref_count{}; - StatusCode code{}; - StringView message; -}; - class Status { uintptr_t m_rep; @@ -38,6 +31,7 @@ class Status void Ref() const; void Unref() const; + StatusCode RepCode() const; public: constexpr Status() : Status(StatusCode::kOk) {} @@ -83,7 +77,7 @@ public: StatusCode code() const { if (IsInline()) { return (StatusCode)(m_rep >> 1U); } - return std::bit_cast(m_rep)->code; + return RepCode(); } }; -- cgit