Пример #1
0
MediumLine* Deallocator::allocateMediumLine()
{
    if (!m_mediumLineCache.size()) {
        std::lock_guard<StaticMutex> lock(PerProcess<Heap>::mutex());
        Heap* heap = PerProcess<Heap>::getFastCase();

        while (m_mediumLineCache.size() != m_mediumLineCache.capacity())
            m_mediumLineCache.push(heap->allocateMediumLine(lock));
    }

    return m_mediumLineCache.pop();
}