Ejemplo n.º 1
0
 public void Dispose()
 {
     _compactorScheduler?.RemoveCompactAction(_compactFunc);
     lock (_writeLock)
     {
         if (_writingTransaction != null)
         {
             throw new BTDBException("Cannot dispose KeyValueDB when writting transaction still running");
         }
         while (_writeWaitingQueue.Count > 0)
         {
             _writeWaitingQueue.Dequeue().TrySetCanceled();
         }
     }
     if (_writerWithTransactionLog != null)
     {
         _writerWithTransactionLog.WriteUInt8((byte)KVCommandType.TemporaryEndOfFile);
         _writerWithTransactionLog.FlushBuffer();
         _fileWithTransactionLog.HardFlush();
         _fileWithTransactionLog.Truncate();
     }
 }