示例#1
0
        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);
        }
示例#2
0
 public SparseMemorySpan(SparseMemoryPage <T> page, int offset, int length)
 {
     Page   = page;
     Offset = offset;
     Length = length;
 }
示例#3
0
 public void ReleasePage(SparseMemoryPage <T> sparseMemoryPage)
 {
     _pagesPool.Push(sparseMemoryPage);
 }