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(); } } }