diff --git a/rai/core_test/wallet.cpp b/rai/core_test/wallet.cpp index ef795519..7a59d964 100644 --- a/rai/core_test/wallet.cpp +++ b/rai/core_test/wallet.cpp @@ -592,7 +592,7 @@ TEST (wallet, work) ASSERT_FALSE (system.work.work_validate (root1, work4)); uint64_t work3 (0); auto iteration (0); - while (work3 != work4) + while (system.work.work_validate (root1, work3)) { system.poll (); rai::transaction transaction (system.nodes [0]->store.environment, nullptr, false); diff --git a/rai/node/rpc.cpp b/rai/node/rpc.cpp index 6a6a76b5..590b31d7 100644 --- a/rai/node/rpc.cpp +++ b/rai/node/rpc.cpp @@ -1452,7 +1452,6 @@ void rai::payment_observer::start (uint64_t timeout) auto this_l (shared_from_this ()); rpc.node.service.add (std::chrono::system_clock::now () + std::chrono::milliseconds (timeout), [this_l] () { - std::lock_guard lock (this_l->rpc.mutex); this_l->complete (rai::payment_status::nothing); }); } @@ -1496,6 +1495,7 @@ void rai::payment_observer::complete (rai::payment_status status) break; } } + std::lock_guard lock (rpc.mutex); assert (rpc.payment_observers.find (account) != rpc.payment_observers.end ()); rpc.payment_observers.erase (account); }