internal override void Phase1VolatilePrepareDone(InternalTransaction tx)
{
Debug.Assert(tx._phase1Volatiles.VolatileDemux != null, "Volatile Demux must exist for VolatilePrepareDone when promoted.");
Monitor.Exit(tx);
try
{
// Tell the distributed TM that the volatile enlistments are prepared
tx._phase1Volatiles.VolatileDemux._promotedEnlistment.Prepared();
}
finally
{
Monitor.Enter(tx);
}
}