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

CreateAbortingClone() private method

private CreateAbortingClone ( InternalTransaction tx ) : void
tx InternalTransaction
return void
        internal override void CreateAbortingClone(InternalTransaction tx)
        {
            // If we have a VolatileDemux in phase1Volatiles, then we have a phase1 volatile enlistment
            // on the promoted transaction, so we can depend on that to deal with our aborting dependent clones.
            if (null != tx._phase1Volatiles.VolatileDemux)
            {
                tx._phase1Volatiles._dependentClones++;
            }
            else
            // We promoted without creating a phase1 volatile enlistment on the promoted transaction,
            // so we let the promoted transaction deal with the aboring clone.
            {
                if (null == tx._abortingDependentClone)
                {
                    tx._abortingDependentClone = tx.PromotedTransaction.DependentClone(false);
                }
                tx._abortingDependentCloneCount++;
            }
        }