summaryrefslogtreecommitdiff
path: root/src/support/threads.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-18 11:44:55 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-18 11:44:55 -0700
commitc611306758e6c811642623500a51b0da52758303 (patch)
tree4062588ad1a0e7e44dad6e72671557b22431b276 /src/support/threads.cpp
parent4b5d4efc7091e25b303cb57076ebdee980b8b464 (diff)
parentd929ba9756378b4b67a921714f608b505cb6cb99 (diff)
downloadbinaryen-c611306758e6c811642623500a51b0da52758303.tar.gz
binaryen-c611306758e6c811642623500a51b0da52758303.tar.bz2
binaryen-c611306758e6c811642623500a51b0da52758303.zip
Merge pull request #353 from WebAssembly/thread-tweaks
Thread fixes
Diffstat (limited to 'src/support/threads.cpp')
-rw-r--r--src/support/threads.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/support/threads.cpp b/src/support/threads.cpp
index 6edff21cb..e67e7dedb 100644
--- a/src/support/threads.cpp
+++ b/src/support/threads.cpp
@@ -117,6 +117,9 @@ void ThreadPool::initialize(size_t num) {
ThreadPool* ThreadPool::get() {
if (!pool) {
size_t num = std::max(1U, std::thread::hardware_concurrency());
+ if (getenv("BINARYEN_CORES")) {
+ num = std::stoi(getenv("BINARYEN_CORES"));
+ }
pool = std::unique_ptr<ThreadPool>(new ThreadPool());
pool->initialize(num);
}
@@ -152,7 +155,7 @@ void ThreadPool::work(std::vector<std::function<ThreadWorkState ()>>& doWorkers)
}
size_t ThreadPool::size() {
- return threads.size();
+ return std::max(size_t(1), threads.size());
}
bool ThreadPool::isRunning() {