diff --git a/contrib/epee/include/net/abstract_tcp_server2.inl b/contrib/epee/include/net/abstract_tcp_server2.inl index f51ca88b..3dca3000 100644 --- a/contrib/epee/include/net/abstract_tcp_server2.inl +++ b/contrib/epee/include/net/abstract_tcp_server2.inl @@ -1010,7 +1010,7 @@ POP_WARNINGS boost::unique_lock lock(local_shared_context->connect_mut); auto connect_callback = [](boost::system::error_code ec_, boost::shared_ptr shared_context) { - shared_context->connect_mut.lock(); shared_context->ec = ec_; shared_context->connect_mut.unlock(); shared_context->cond.notify_one(); + shared_context->connect_mut.lock(); shared_context->ec = ec_; shared_context->cond.notify_one(); shared_context->connect_mut.unlock(); }; sock_.async_connect(remote_endpoint, boost::bind(connect_callback, _1, local_shared_context)); diff --git a/contrib/valgrind/monero.supp b/contrib/valgrind/monero.supp index 1c400076..16e34e82 100644 --- a/contrib/valgrind/monero.supp +++ b/contrib/valgrind/monero.supp @@ -8,3 +8,12 @@ fun:_ULx86_64_step ... } + +{ + boost unlocks before signalling cond var + Helgrind:Misc + ... + fun:pthread_cond_signal@* + fun:maybe_unlock_and_signal_one > + ... +}