summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/Support/TaskQueue.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/include/llvm/Support/TaskQueue.h b/llvm/include/llvm/Support/TaskQueue.h
index f5abc3d612e..49981adb763 100644
--- a/llvm/include/llvm/Support/TaskQueue.h
+++ b/llvm/include/llvm/Support/TaskQueue.h
@@ -44,17 +44,19 @@ class TaskQueue {
: C(std::move(C)), P(std::make_shared<std::promise<ResultTy>>()),
Parent(&Parent) {}
- template <typename T> void invokeCallbackAndSetPromise() {
+ template<typename T>
+ void invokeCallbackAndSetPromise(T*) {
P->set_value(C());
}
- template <> void invokeCallbackAndSetPromise<void>() {
+ void invokeCallbackAndSetPromise(void*) {
C();
P->set_value();
}
void operator()() noexcept {
- invokeCallbackAndSetPromise<ResultTy>();
+ ResultTy *Dummy = nullptr;
+ invokeCallbackAndSetPromise(Dummy);
Parent->completeTask();
}
OpenPOWER on IntegriCloud