cryptonote_protocol: guard against all threads in standby

This commit is contained in:
moneromooo-monero 2018-02-02 22:33:53 +00:00
parent ed67e5c001
commit 928c1825f0
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
1 changed files with 9 additions and 0 deletions

View File

@ -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");