@@ -736,13 +736,12 @@ class future
736736 future_state<T> * state () noexcept
737737 {
738738 std::atomic_thread_fence (std::memory_order_acquire);
739-
740- std::unique_lock<std::recursive_mutex> l (_m, std::defer_lock);
741- std::unique_lock<std::recursive_mutex> l2 (*_global_m, std::defer_lock);
742- std::lock (l, l2);
743-
744739 if (_promise)
745740 {
741+ std::unique_lock<std::recursive_mutex> l (_m, std::defer_lock);
742+ std::unique_lock<std::recursive_mutex> l2 (*_global_m, std::defer_lock);
743+ std::lock (l, l2);
744+
746745 // std::lock_guard<std::recursive_mutex> l(_promise->_m);
747746 future_state<T> * _st = _promise->_state ;
748747 std::atomic_thread_fence (std::memory_order_release);
@@ -758,13 +757,12 @@ class future
758757 const future_state<T> * state () const noexcept
759758 {
760759 std::atomic_thread_fence (std::memory_order_acquire);
761-
762- std::unique_lock<std::recursive_mutex> l (_m, std::defer_lock);
763- std::unique_lock<std::recursive_mutex> l2 (*_global_m, std::defer_lock);
764- std::lock (l, l2);
765-
766760 if (_promise)
767761 {
762+ std::unique_lock<std::recursive_mutex> l (_m, std::defer_lock);
763+ std::unique_lock<std::recursive_mutex> l2 (*_global_m, std::defer_lock);
764+ std::lock (l, l2);
765+
768766 // std::lock_guard<std::recursive_mutex> l(_promise->_m);
769767 const future_state<T> * _st = _promise->_state ;
770768 std::atomic_thread_fence (std::memory_order_release);
0 commit comments