Ejemplo n.º 1
0
        public void Dispose()
        {
            if (_disposed)
            {
                return;
            }
            _disposed = true;

            // we cannot dispose the journal until we are done with all of the pending writes
            if (_lazyTransactionBuffer != null)
            {
                _lazyTransactionBuffer.WriteBufferToFile(CurrentFile, null);
                _lazyTransactionBuffer.Dispose();
            }
            _compressionPager.Dispose();
            _lz4.Dispose();

            _journalApplicator.Dispose();
            if (_env.Options.OwnsPagers)
            {
                foreach (var logFile in _files)
                {
                    logFile.Dispose();
                }
            }
            else
            {
                foreach (var logFile in _files)
                {
                    GC.SuppressFinalize(logFile);
                }
            }

            _files = ImmutableAppendOnlyList <JournalFile> .Empty;
        }
Ejemplo n.º 2
0
        public void Dispose()
        {
            if (disposed)
            {
                return;
            }
            disposed = true;

            // we cannot dispose the journal until we are done with all of the pending writes

            _compressionPager.Dispose();
            _lz4.Dispose();
            if (_env.Options.OwnsPagers)
            {
                foreach (var logFile in _files)
                {
                    logFile.Dispose();
                }

                _journalApplicator.Dispose();
            }
            else
            {
                foreach (var logFile in _files)
                {
                    GC.SuppressFinalize(logFile);
                }
            }

            _files = ImmutableAppendOnlyList <JournalFile> .Empty;
        }
 public virtual void Dispose()
 {
     if (_disposed)
     {
         return;
     }
     Reset();
     Lz4.Dispose();
     if (_tempBuffer != null)
     {
         Pool.Return(_tempBuffer);
     }
     if (_fieldNames != null)
     {
         foreach (var kvp in _fieldNames.Values)
         {
             Pool.Return(kvp.AllocatedMemoryData);
         }
     }
     if (_internedFieldNames != null)
     {
         foreach (var key in _internedFieldNames.Keys)
         {
             Pool.Return(key.AllocatedMemoryData);
         }
     }
     _disposed = true;
 }