Example #1
0
 public void Dispose()
 {
     DocumentMapEntries?.Dispose();
     DocumentMapEntries = null;
     MapPhaseTree       = null;
     ReducePhaseTree    = null;
     ProcessedDocEtags.Clear();
     ProcessedTombstoneEtags.Clear();
     StoreByReduceKeyHash.Clear();
     FreedPages.Clear();
 }
Example #2
0
 public void Dispose()
 {
     StoreNextMapResultId();
     DocumentMapEntries?.Dispose();
     DocumentMapEntries       = null;
     MapPhaseTree             = null;
     ReducePhaseTree          = null;
     PageModifiedInReduceTree = null;
     ProcessedDocEtags.Clear();
     ProcessedTombstoneEtags.Clear();
     StoreByReduceKeyHash.Clear();
 }
Example #3
0
        public void Dispose()
        {
            if (_disposed.HasFlag(TxState.Disposed))
            {
                return;
            }

            try
            {
                if (!Committed && !RolledBack && Flags == TransactionFlags.ReadWrite)
                {
                    Rollback();
                }

                _disposed |= TxState.Disposed;

                PersistentContext.FreePageLocator(_pageLocator);
            }
            finally
            {
                _env.TransactionCompleted(this);

                foreach (var pagerState in _pagerStates)
                {
                    pagerState.Release();
                }

                if (JournalFiles != null)
                {
                    foreach (var journalFile in JournalFiles)
                    {
                        journalFile.Release();
                    }
                }

                _root?.Dispose();
                _freeSpaceTree?.Dispose();

                _allocator.AllocationFailed -= MarkTransactionAsFailed;
                if (_disposeAllocator)
                {
                    _allocator.Dispose();
                }

                OnDispose?.Invoke(this);
            }
        }
Example #4
0
        public void Dispose()
        {
            foreach (var item in _treesBySliceCache)
            {
                item.Value.Dispose();
            }

            foreach (var item in _fixedSizeTreeCache)
            {
                foreach (var item2 in item.Value)
                {
                    item2.Value.Dispose();
                }
            }

            _activeCandidateSection?.Dispose();
            _activeDataSmallSection?.Dispose();
            _fstKey?.Dispose();
            _inactiveSections?.Dispose();
            _tableTree?.Dispose();
        }
Example #5
0
        public void Dispose()
        {
            if (_disposed)
            {
                return;
            }

            if (!Committed && !RolledBack && Flags == TransactionFlags.ReadWrite)
            {
                Rollback();
            }

            _disposed = true;

            if (Flags == TransactionFlags.ReadWrite)
            {
                _env.WriteTransactionPool.Reset();
            }

            _env.TransactionCompleted(this);

            foreach (var pagerState in _pagerStates)
            {
                pagerState.Release();
            }

            _root?.Dispose();
            _freeSpaceTree?.Dispose();

            if (_disposeAllocator)
            {
                _allocator.Dispose();
            }

            OnDispose?.Invoke(this);
        }