add a --max-concurrency flag

It sets the max number of threads to use for a parallel job.
This is different that the number of total threads, since monero
binaries typically start a lot of them.
This commit is contained in:
moneromooo-monero 2016-04-28 20:25:33 +01:00
parent bdb93cbf3d
commit 513a658c87
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
8 changed files with 47 additions and 7 deletions

View file

@ -422,4 +422,27 @@ std::string get_nix_version_display_string()
umask(mode);
#endif
}
namespace
{
boost::mutex max_concurrency_lock;
unsigned max_concurrency = boost::thread::hardware_concurrency();
}
void set_max_concurrency(unsigned n)
{
if (n < 1)
n = boost::thread::hardware_concurrency();
unsigned hwc = boost::thread::hardware_concurrency();
if (n > hwc)
n = hwc;
boost::lock_guard<boost::mutex> lock(max_concurrency_lock);
max_concurrency = n;
}
unsigned get_max_concurrency()
{
boost::lock_guard<boost::mutex> lock(max_concurrency_lock);
return max_concurrency;
}
}

View file

@ -160,4 +160,7 @@ namespace tools
};
void set_strict_default_file_permissions(bool strict);
void set_max_concurrency(unsigned n);
unsigned get_max_concurrency();
}