Ejemplo n.º 1
0
 internal void RevertWrittingTransaction(bool nothingWrittenToTransactionLog)
 {
     if (!nothingWrittenToTransactionLog)
     {
         _writerWithTransactionLog.WriteUInt8((byte)KVCommandType.Rollback);
         var newRoot = _lastCommited.CloneRoot();
         UpdateTransactionLogInBTreeRoot(newRoot);
         lock (_writeLock)
         {
             _writingTransaction = null;
             _lastCommited       = newRoot;
             TryDequeWaiterForWrittingTransaction();
         }
     }
     else
     {
         lock (_writeLock)
         {
             _writingTransaction = null;
             TryDequeWaiterForWrittingTransaction();
         }
     }
 }