diff options
Diffstat (limited to 'llvm/unittests/Support')
| -rw-r--r-- | llvm/unittests/Support/ThreadPool.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/unittests/Support/ThreadPool.cpp b/llvm/unittests/Support/ThreadPool.cpp index aa7f874..b5268c8 100644 --- a/llvm/unittests/Support/ThreadPool.cpp +++ b/llvm/unittests/Support/ThreadPool.cpp @@ -183,6 +183,20 @@ TYPED_TEST(ThreadPoolTest, Async) { ASSERT_EQ(2, i.load()); } +TYPED_TEST(ThreadPoolTest, AsyncMoveOnly) { + CHECK_UNSUPPORTED(); + DefaultThreadPool Pool; + std::promise<int> p; + std::future<int> f = p.get_future(); + Pool.async([this, p = std::move(p)]() mutable { + this->waitForMainThread(); + p.set_value(42); + }); + this->setMainThreadReady(); + Pool.wait(); + ASSERT_EQ(42, f.get()); +} + TYPED_TEST(ThreadPoolTest, GetFuture) { CHECK_UNSUPPORTED(); DefaultThreadPool Pool(hardware_concurrency(2)); |
