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++;
}
}