Add concurrency check to rpc mining to ensure not too many threads. number of cores times 4 or 257.

This commit is contained in:
Ashley Perpetual 2017-01-27 03:31:56 +08:00
parent 4629ead8c5
commit cc1462e0b7

View file

@ -616,6 +616,23 @@ namespace cryptonote
return true; return true;
} }
unsigned int concurrency_count = boost::thread::hardware_concurrency() * 4;
// if we couldn't detect threads, set it to a ridiculously high number
if(concurrency_count == 0)
{
concurrency_count = 257;
}
// if there are more threads requested than the hardware supports
// then we fail and log that.
if(req.threads_count > concurrency_count)
{
res.status = "Failed, too many threads relative to CPU cores.";
LOG_PRINT_L0(res.status);
return true;
}
boost::thread::attributes attrs; boost::thread::attributes attrs;
attrs.set_stack_size(THREAD_STACK_SIZE); attrs.set_stack_size(THREAD_STACK_SIZE);