public SparseMemoryPage <T> GetPage(int capacity) { if (_currentPage == null) { return(_currentPage = Get().AddReference()); } if (_currentPage.CanAllocate(capacity)) { return(_currentPage); } _currentPage.ReleaseReference(); _currentPage = Get().AddReference(); return(_currentPage); }
public SparseMemorySpan(SparseMemoryPage <T> page, int offset, int length) { Page = page; Offset = offset; Length = length; }
public void ReleasePage(SparseMemoryPage <T> sparseMemoryPage) { _pagesPool.Push(sparseMemoryPage); }