mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
dbms: development [#CONV-2944].
This commit is contained in:
parent
71a594fd6d
commit
b907de191b
@ -56,6 +56,18 @@ public:
|
|||||||
}
|
}
|
||||||
empty_count.set();
|
empty_count.set();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear()
|
||||||
|
{
|
||||||
|
while (fill_count.tryWait(0))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
Poco::ScopedLock<Poco::Mutex> lock(mutex);
|
||||||
|
queue.pop();
|
||||||
|
}
|
||||||
|
empty_count.set();
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -103,8 +115,13 @@ public:
|
|||||||
finish = true;
|
finish = true;
|
||||||
cancel();
|
cancel();
|
||||||
|
|
||||||
// TODO: может быть, здесь может возникнуть блокировка, если очередь переполнена, и какой-нибудь из потоков попытается положить в неё блок.
|
/// Вынем всё, что есть в очереди готовых данных.
|
||||||
|
output_queue.clear();
|
||||||
|
|
||||||
|
/** В этот момент, запоздавшие потоки ещё могут вставить в очередь какие-нибудь блоки, но очередь не переполнится.
|
||||||
|
* PS. Может быть, для переменной finish нужен барьер?
|
||||||
|
*/
|
||||||
|
|
||||||
for (ThreadsData::iterator it = threads_data.begin(); it != threads_data.end(); ++it)
|
for (ThreadsData::iterator it = threads_data.begin(); it != threads_data.end(); ++it)
|
||||||
it->thread->join();
|
it->thread->join();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user