diff options
author | Riccardo Spagni <ric@spagni.net> | 2018-02-16 14:23:53 +0100 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2018-02-16 14:23:53 +0100 |
commit | ef47ba95c84058c04595d5e372a136c039b77b88 (patch) | |
tree | ffea0f9ff474022cd402bef553767cdf29c6075f | |
parent | Merge pull request #3225 (diff) | |
parent | cryptonote_protocol: guard against all threads in standby (diff) | |
download | monero-ef47ba95c84058c04595d5e372a136c039b77b88.tar.xz |
Merge pull request #3229
928c1825 cryptonote_protocol: guard against all threads in standby (moneromooo-monero)
-rw-r--r-- | src/cryptonote_protocol/cryptonote_protocol_handler.inl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.inl b/src/cryptonote_protocol/cryptonote_protocol_handler.inl index 9475bcaa8..ff187e8ae 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.inl +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.inl @@ -1333,6 +1333,15 @@ skip: break; } + // this one triggers if all threads are in standby, which should not happen, + // but happened at least once, so we unblock at least one thread if so + const boost::unique_lock<boost::mutex> sync{m_sync_lock, boost::try_to_lock}; + if (sync.owns_lock()) + { + LOG_DEBUG_CC(context, "No other thread is adding blocks, resuming"); + break; + } + if (should_download_next_span(context)) { MDEBUG(context << " we should try for that next span too, we think we could get it faster, resuming"); |