System.Transactions.TransactionStatePromotedBase.Rollback C# (CSharp) Method

Rollback() private method

private Rollback ( InternalTransaction tx, Exception e ) : void
tx InternalTransaction
e Exception
return void
        internal override void Rollback(InternalTransaction tx, Exception e)
        {
            Debug.Assert(tx.PromotedTransaction != null, "Promoted state not valid for transaction.");
            // Forward this on to the promoted transaction.

            if (tx._innerException == null)
            {
                tx._innerException = e;
            }

            // Don't hold locks while calling into the promoted tx
            Monitor.Exit(tx);
            try
            {
                tx.PromotedTransaction.Rollback();
            }
            finally
            {
                Monitor.Enter(tx);
            }
        }