public void ReleasePage(int index)
{
if (index > 0)
{
index--;
lock (m_syncRoot)
{
if (m_disposed)
throw new ObjectDisposedException(GetType().FullName);
if (m_isPageFree.TrySetBit(index))
{
//IntPtr page = GetPageAddress(index);
//Memory.Clear(page,PageSize);
m_usedPageCount--;
return;
}
}
}
Log.Publish(MessageLevel.Warning, MessageFlags.BugReport, "A page has been released twice. Some code somewhere could create memory corruption");
throw new Exception("Cannot have duplicate calls to release pages.");
}