diff options
| author | Eric Fiselier <eric@efcs.ca> | 2016-05-07 05:37:31 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2016-05-07 05:37:31 +0000 |
| commit | 2266a8d473256630785f5803bb8de6c7e619ef9d (patch) | |
| tree | a4effd4985fa20e485c03e9b1f89c1d748bd1e27 | |
| parent | bbedb1495cf73111fae2d2455100059fffb1620a (diff) | |
| download | bcm5719-llvm-2266a8d473256630785f5803bb8de6c7e619ef9d.tar.gz bcm5719-llvm-2266a8d473256630785f5803bb8de6c7e619ef9d.zip | |
Fix memory_resource build for _LIBCPP_HAS_NO_THREADS
llvm-svn: 268850
| -rw-r--r-- | libcxx/src/experimental/memory_resource.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libcxx/src/experimental/memory_resource.cpp b/libcxx/src/experimental/memory_resource.cpp index 046ef02a4bc..ff0fbb6065f 100644 --- a/libcxx/src/experimental/memory_resource.cpp +++ b/libcxx/src/experimental/memory_resource.cpp @@ -11,7 +11,7 @@ #ifndef _LIBCPP_HAS_NO_ATOMIC_HEADER #include "atomic" -#else +#elif !defined(_LIBCPP_HAS_NO_THREADS) #include "mutex" #endif @@ -100,7 +100,7 @@ __default_memory_resource(bool set = false, memory_resource * new_res = nullptr) return _VSTD::atomic_load_explicit( &__res, memory_order::memory_order_acquire); } -#else +#elif !defined(_LIBCPP_HAS_NO_THREADS) static memory_resource * res = &res_init.resources.new_delete_res; static mutex res_lock; if (set) { @@ -113,6 +113,16 @@ __default_memory_resource(bool set = false, memory_resource * new_res = nullptr) lock_guard<mutex> guard(res_lock); return res; } +#else + static memory_resource* res = &res_init.resources.new_delete_res; + if (set) { + new_res = new_res ? new_res : new_delete_resource(); + memory_resource * old_res = res; + res = new_res; + return old_res; + } else { + return res; + } #endif } |

