public void Dispose()
{
lock (m_syncRoot)
{
if (!m_disposed)
{
try
{
foreach (Memory block in m_memoryBlocks)
{
block.Dispose();
}
m_memoryBlockAllocations = 0;
m_isPageFree.ClearAll();
m_memoryBlocks.Clear();
}
finally
{
m_disposed = true; // Prevent duplicate dispose.
}
}
}
}