public async Task Execute()

in Amazon.QLDB.Driver/driver/AsyncQldbDriver.cs [110:146]


        public async Task<T> Execute<T>(
            Func<AsyncTransactionExecutor, Task<T>> func,
            RetryPolicy retryPolicy,
            CancellationToken cancellationToken = default)
        {
            this.driverBase.ThrowIfClosed();

            bool replaceDeadSession = false;
            for (int retryAttempt = 1; true; retryAttempt++)
            {
                AsyncQldbSession session = null;
                try
                {
                    if (replaceDeadSession)
                    {
                        session = await this.StartNewSession(cancellationToken);
                    }
                    else
                    {
                        session = await this.GetSession(cancellationToken);
                    }

                    T returnedValue = await session.Execute(func, cancellationToken);
                    this.driverBase.ReleaseSession(session);
                    return returnedValue;
                }
                catch (QldbTransactionException qte)
                {
                    replaceDeadSession = await this.driverBase.GetShouldReplaceDeadSessionOrThrowIfNoRetryAsync(
                        qte,
                        session,
                        retryAttempt,
                        retryPolicy,
                        cancellationToken);
                }
            }
        }