mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 01:22:04 +00:00
Fixed error when BackgroundSchedulePool is initialized in context of a query #2482
This commit is contained in:
parent
ca5b83ac39
commit
deb3ce534c
@ -211,26 +211,28 @@ void BackgroundSchedulePool::cancelDelayedTask(const TaskInfoPtr & task, std::lo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BackgroundSchedulePool::attachToThreadGroup()
|
||||||
|
{
|
||||||
|
std::lock_guard lock(delayed_tasks_mutex);
|
||||||
|
|
||||||
|
if (thread_group)
|
||||||
|
{
|
||||||
|
/// Put all threads to one thread pool
|
||||||
|
CurrentThread::attachTo(thread_group);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CurrentThread::initializeQuery();
|
||||||
|
thread_group = CurrentThread::getGroup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void BackgroundSchedulePool::threadFunction()
|
void BackgroundSchedulePool::threadFunction()
|
||||||
{
|
{
|
||||||
setThreadName("BackgrSchedPool");
|
setThreadName("BackgrSchedPool");
|
||||||
|
|
||||||
{
|
attachToThreadGroup();
|
||||||
std::lock_guard lock(delayed_tasks_mutex);
|
|
||||||
|
|
||||||
if (thread_group)
|
|
||||||
{
|
|
||||||
/// Put all threads to one thread pool
|
|
||||||
CurrentThread::attachTo(thread_group);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CurrentThread::initializeQuery();
|
|
||||||
thread_group = CurrentThread::getGroup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Put all threads to one thread pool
|
|
||||||
SCOPE_EXIT({ CurrentThread::detachQueryIfNotDetached(); });
|
SCOPE_EXIT({ CurrentThread::detachQueryIfNotDetached(); });
|
||||||
CurrentThread::getMemoryTracker().setMetric(CurrentMetrics::MemoryTrackingInBackgroundSchedulePool);
|
CurrentThread::getMemoryTracker().setMetric(CurrentMetrics::MemoryTrackingInBackgroundSchedulePool);
|
||||||
|
|
||||||
@ -249,8 +251,7 @@ void BackgroundSchedulePool::delayExecutionThreadFunction()
|
|||||||
{
|
{
|
||||||
setThreadName("BckSchPoolDelay");
|
setThreadName("BckSchPoolDelay");
|
||||||
|
|
||||||
/// Put all threads to one thread pool
|
attachToThreadGroup();
|
||||||
CurrentThread::attachTo(thread_group);
|
|
||||||
SCOPE_EXIT({ CurrentThread::detachQueryIfNotDetached(); });
|
SCOPE_EXIT({ CurrentThread::detachQueryIfNotDetached(); });
|
||||||
|
|
||||||
while (!shutdown)
|
while (!shutdown)
|
||||||
|
Loading…
Reference in New Issue
Block a user