From b6408f2cb2a48824ddf6accbaee39ad6ebb28453 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Tue, 19 Aug 2025 09:54:30 +0200 Subject: [PATCH] refactor(malloc_byte_buffer): `std::atomic` -> `std::atomic_flag` Fixes gcc build on armv6: dwarfs/src/malloc_byte_buffer.cpp:122:36: error: static assertion failed 122 | static_assert(std::atomic::is_always_lock_free); --- src/malloc_byte_buffer.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/malloc_byte_buffer.cpp b/src/malloc_byte_buffer.cpp index 55d4ab3a..a54b9147 100644 --- a/src/malloc_byte_buffer.cpp +++ b/src/malloc_byte_buffer.cpp @@ -91,7 +91,7 @@ class malloc_byte_buffer_impl : public mutable_byte_buffer_interface { } void freeze_location() override { - frozen_.store(true, std::memory_order_release); + frozen_.test_and_set(std::memory_order_release); } void append(void const* data, size_t size) override { @@ -115,11 +115,10 @@ class malloc_byte_buffer_impl : public mutable_byte_buffer_interface { std::string{what}); } - bool frozen() const { return frozen_.load(std::memory_order_acquire); } + bool frozen() const { return frozen_.test(std::memory_order_acquire); } internal::malloc_buffer data_; - std::atomic frozen_{false}; - static_assert(std::atomic::is_always_lock_free); + std::atomic_flag frozen_{}; }; } // namespace