diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2015-12-15 05:53:41 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2015-12-15 05:53:41 +0000 |
commit | bebca1c496cdd6d3fdd5d3290f831f331e3114b4 (patch) | |
tree | 41533033eb53b2beca17d280d8500e4a6e68a2e5 | |
parent | 27966e2175c490dc90713c3c41b23e8fd279d88a (diff) | |
download | bcm5719-llvm-bebca1c496cdd6d3fdd5d3290f831f331e3114b4.tar.gz bcm5719-llvm-bebca1c496cdd6d3fdd5d3290f831f331e3114b4.zip |
Fix MSVC build with LLVM_ENABLE_THREADS=OFF
Follow-up to the ThreadPool implementation.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 255621
-rw-r--r-- | llvm/lib/Support/ThreadPool.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Support/ThreadPool.cpp b/llvm/lib/Support/ThreadPool.cpp index bc004dfb8a8..d4dcb2ee96d 100644 --- a/llvm/lib/Support/ThreadPool.cpp +++ b/llvm/lib/Support/ThreadPool.cpp @@ -125,16 +125,25 @@ void ThreadPool::wait() { while (!Tasks.empty()) { auto Task = std::move(Tasks.front()); Tasks.pop(); - Task(); +#ifndef _MSC_VER + Task(); +#else + Task(/* unused */ false); +#endif } } std::shared_future<ThreadPool::VoidTy> ThreadPool::asyncImpl(TaskTy Task) { +#ifndef _MSC_VER // Get a Future with launch::deferred execution using std::async auto Future = std::async(std::launch::deferred, std::move(Task)).share(); // Wrap the future so that both ThreadPool::wait() can operate and the // returned future can be sync'ed on. PackagedTaskTy PackagedTask([Future]() { Future.get(); }); +#else + auto Future = std::async(std::launch::deferred, std::move(Task), false).share(); + PackagedTaskTy PackagedTask([Future](bool) -> bool { Future.get(); return false; }); +#endif Tasks.push(std::move(PackagedTask)); return Future; } |