diff options
Diffstat (limited to 'third_party/immer/immer/detail/ref_count_base.hpp')
-rw-r--r-- | third_party/immer/immer/detail/ref_count_base.hpp | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/third_party/immer/immer/detail/ref_count_base.hpp b/third_party/immer/immer/detail/ref_count_base.hpp deleted file mode 100644 index 28f2e46a99f9..000000000000 --- a/third_party/immer/immer/detail/ref_count_base.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#pragma once - -#include <atomic> - -namespace immer { -namespace detail { - -template <typename Deriv> -struct ref_count_base -{ - mutable std::atomic<int> ref_count{0}; - - friend void intrusive_ptr_add_ref(const Deriv* x) - { - x->ref_count.fetch_add(1, std::memory_order_relaxed); - } - - friend void intrusive_ptr_release(const Deriv* x) - { - if (x->ref_count.fetch_sub(1, std::memory_order_release) == 1) { - std::atomic_thread_fence(std::memory_order_acquire); - delete x; - } - } -}; - -} /* namespace detail */ -} /* namespace immer */ |