From dd9a4b9ae80b12f93ca33620a3de0907e81dfe7b Mon Sep 17 00:00:00 2001 From: Justin Lebar Date: Sun, 23 Apr 2017 16:58:48 +0000 Subject: [PATCH] Add missing acquire_load to call_once overload. Summary: Seemed to have been overlooked in D24028. This bug was found and brought to my attention by Paul Wankadia. Reviewers: kubamracek, EricWF, dvyukov Differential Revision: https://reviews.llvm.org/D32402 llvm-svn: 301132 --- libcxx/include/mutex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcxx/include/mutex b/libcxx/include/mutex index e92baa5..0b25614 100644 --- a/libcxx/include/mutex +++ b/libcxx/include/mutex @@ -685,7 +685,7 @@ inline _LIBCPP_INLINE_VISIBILITY void call_once(once_flag& __flag, const _Callable& __func) { - if (__flag.__state_ != ~0ul) + if (__libcpp_acquire_load(&__flag.__state_) != ~0ul) { __call_once_param __p(__func); __call_once(__flag.__state_, &__p, &__call_once_proxy); -- 2.7.4