public Task<IKeyValueDBTransaction> StartWritingTransaction()
{
lock (_writeLock)
{
var tcs = new TaskCompletionSource<IKeyValueDBTransaction>();
if (_writingTransaction == null)
{
NewWrittingTransactionUnsafe(tcs);
}
else
{
_writeWaitingQueue.Enqueue(tcs);
}
return tcs.Task;
}
}