diff options
Diffstat (limited to 'core/device.cpp')
-rw-r--r-- | core/device.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/core/device.cpp b/core/device.cpp index 2766c5e4..795a9601 100644 --- a/core/device.cpp +++ b/core/device.cpp @@ -9,15 +9,12 @@ #include "mastering.h" -al::FlexArray<ContextBase*> DeviceBase::sEmptyContextArray{0u}; +static_assert(std::atomic<std::chrono::nanoseconds>::is_always_lock_free); -DeviceBase::DeviceBase(DeviceType type) : Type{type}, mContexts{&sEmptyContextArray} +DeviceBase::DeviceBase(DeviceType type) + : Type{type}, mContexts{al::FlexArray<ContextBase*>::Create(0)} { } -DeviceBase::~DeviceBase() -{ - auto *oldarray = mContexts.exchange(nullptr, std::memory_order_relaxed); - if(oldarray != &sEmptyContextArray) delete oldarray; -} +DeviceBase::~DeviceBase() = default; |