private async Task CreateTransactionImplAsync(Session session) { ActiveTransaction = await SpannerClient.BeginTransactionAsync(new BeginTransactionRequest { SessionAsSessionName = session.SessionName, Options = ActiveTransactionOptions }).WithSessionChecking(() => session).ConfigureAwait(false); s_activeTransactionTable.AddOrUpdate(ActiveTransaction.Id, session, (id, s) => session); }
private async Task CreateTransactionImplAsync(Session session, TransactionOptions options, Task oldPrewarmTask) { //we need to await for previous task completion anyway -- otherwise there is a bad race condition. //this is a little redundant, but just to be sure. if (oldPrewarmTask != null) { await oldPrewarmTask.ConfigureAwait(false); } var sw = Stopwatch.StartNew(); ActiveTransaction = await SpannerClient.BeginTransactionAsync(new BeginTransactionRequest { SessionAsSessionName = session.SessionName, Options = options }).WithSessionChecking(() => session).ConfigureAwait(false); Logger.LogPerformanceCounterFn("Transaction.Begin.Duration", x => sw.ElapsedMilliseconds); TransactionOptions = options; s_activeTransactionTable.AddOrUpdate(ActiveTransaction.Id, session, (id, s) => session); }