internal override void EnterState(InternalTransaction tx)
{
CommonEnterState(tx);
Debug.Assert(tx._phase1Volatiles.VolatileDemux != null, "Volatile Demux must exist.");
ChangeStatePromotedAborted(tx);
Monitor.Exit(tx);
try
{
// Tell the distributed TM that the tx aborted.
tx._phase1Volatiles.VolatileDemux._promotedEnlistment.ForceRollback();
}
finally
{
Monitor.Enter(tx);
}
}