From 702c5756d5a2050327603cb9e507c839f928a7a3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 6 Nov 2017 13:44:46 +0200 Subject: Make shared_base counter atomic in C++11 and up --- odb/details/shared-ptr/base.hxx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'odb/details/shared-ptr/base.hxx') diff --git a/odb/details/shared-ptr/base.hxx b/odb/details/shared-ptr/base.hxx index c042fa6..5153aba 100644 --- a/odb/details/shared-ptr/base.hxx +++ b/odb/details/shared-ptr/base.hxx @@ -7,10 +7,15 @@ #include +#include // ODB_CXX11, ODB_NOTHROW_NOEXCEPT + #include #include // std::size_t -#include // ODB_CXX11, ODB_NOTHROW_NOEXCEPT +#ifdef ODB_CXX11 +#include +#endif + #include #include @@ -96,12 +101,12 @@ namespace odb bool (*zero_counter) (void*); }; - private: - bool - _dec_ref_callback (); - protected: +#ifdef ODB_CXX11 + std::atomic counter_; +#else std::size_t counter_; +#endif refcount_callback* callback_; }; -- cgit v1.1