mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-18 14:30:49 +00:00
34 lines
580 B
C++
34 lines
580 B
C++
#include <iostream>
|
|
#include <stdexcept>
|
|
#include <Common/ThreadPool.h>
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
|
|
static bool check()
|
|
{
|
|
ThreadPool pool(10);
|
|
|
|
pool.scheduleOrThrowOnError([] { throw std::runtime_error("Hello, world!"); });
|
|
|
|
try
|
|
{
|
|
for (size_t i = 0; i < 100; ++i)
|
|
pool.scheduleOrThrowOnError([] {}); /// An exception will be rethrown from this method.
|
|
}
|
|
catch (const std::runtime_error &)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
pool.wait();
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
TEST(ThreadPool, ExceptionFromSchedule)
|
|
{
|
|
EXPECT_TRUE(check());
|
|
}
|