Skip to content
This repository was archived by the owner on Dec 1, 2021. It is now read-only.

Commit 03e431c

Browse files
Revert "_promise == nullptr fix"
1 parent 391457c commit 03e431c

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

include/aegis/futures.hpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)