diff options
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/Support/TaskQueue.h | 8 |
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(); } |