refactor(malloc_byte_buffer): std::atomic<bool> -> 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<bool>::is_always_lock_free);
This commit is contained in:
Marcus Holland-Moritz 2025-08-19 09:54:30 +02:00
parent 4fb7a66139
commit b6408f2cb2

View File

@ -91,7 +91,7 @@ class malloc_byte_buffer_impl : public mutable_byte_buffer_interface {
} }
void freeze_location() override { 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 { 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}); 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_; internal::malloc_buffer data_;
std::atomic<bool> frozen_{false}; std::atomic_flag frozen_{};
static_assert(std::atomic<bool>::is_always_lock_free);
}; };
} // namespace } // namespace