diff options
author | Riccardo Spagni <ric@spagni.net> | 2016-04-29 10:43:48 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2016-04-29 10:43:48 +0200 |
commit | 5b734c2a3acfc8580cdc2e19942a3d4a043cc830 (patch) | |
tree | ab37a04721f4d5c1041b77a480f8b59d5b7d9387 /src/common | |
parent | Merge pull request #824 (diff) | |
parent | add a --max-concurrency flag (diff) | |
download | monero-5b734c2a3acfc8580cdc2e19942a3d4a043cc830.tar.xz |
Merge pull request #825
513a658 add a --max-concurrency flag (moneromooo-monero)
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/util.cpp | 23 | ||||
-rw-r--r-- | src/common/util.h | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/common/util.cpp b/src/common/util.cpp index 2337f5766..a53a9be52 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -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; + } } diff --git a/src/common/util.h b/src/common/util.h index ed1c16cb0..4fcf66b8f 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -160,4 +160,7 @@ namespace tools }; void set_strict_default_file_permissions(bool strict); + + void set_max_concurrency(unsigned n); + unsigned get_max_concurrency(); } |