mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Merge pull request #18774 from azat/memory-tracking-deallocation-respect-level
Respect memory tracker blocker level during deallocations
This commit is contained in:
commit
9e77f0faa3
@ -234,7 +234,12 @@ void MemoryTracker::updatePeak(Int64 will_be)
|
|||||||
void MemoryTracker::free(Int64 size)
|
void MemoryTracker::free(Int64 size)
|
||||||
{
|
{
|
||||||
if (BlockerInThread::isBlocked(level))
|
if (BlockerInThread::isBlocked(level))
|
||||||
|
{
|
||||||
|
/// Since the BlockerInThread should respect the level, we should go to the next parent.
|
||||||
|
if (auto * loaded_next = parent.load(std::memory_order_relaxed))
|
||||||
|
loaded_next->free(size);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
std::bernoulli_distribution sample(sample_probability);
|
std::bernoulli_distribution sample(sample_probability);
|
||||||
if (unlikely(sample_probability && sample(thread_local_rng)))
|
if (unlikely(sample_probability && sample(thread_local_rng)))
|
||||||
|
Loading…
Reference in New Issue
Block a user