Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Phase0VolatilePrepareDone()

override void System.Transactions.TransactionStatePromotedNonMSDTCPhase0.Phase0VolatilePrepareDone ( InternalTransaction tx)
inlinepackagevirtual

Reimplemented from System.Transactions.TransactionStatePromotedNonMSDTCBase.

Definition at line 38 of file TransactionStatePromotedNonMSDTCPhase0.cs.

39 {
40 int volatileEnlistmentCount = tx._phase0Volatiles._volatileEnlistmentCount;
41 int dependentClones = tx._phase0Volatiles._dependentClones;
42 tx._phase0VolatileWaveCount = volatileEnlistmentCount;
43 if (tx._phase0Volatiles._preparedVolatileEnlistments < volatileEnlistmentCount + dependentClones)
44 {
45 for (int i = 0; i < volatileEnlistmentCount; i++)
46 {
47 tx._phase0Volatiles._volatileEnlistments[i]._twoPhaseState.ChangeStatePreparing(tx._phase0Volatiles._volatileEnlistments[i]);
48 if (!tx.State.ContinuePhase0Prepares())
49 {
50 break;
51 }
52 }
53 }
54 else
55 {
56 TransactionState.TransactionStatePromotedNonMSDTCVolatilePhase1.EnterState(tx);
57 }
58 }

References System.Transactions.VolatileEnlistmentSet._dependentClones, System.Transactions.InternalTransaction._phase0Volatiles, System.Transactions.VolatileEnlistmentSet._preparedVolatileEnlistments, System.Transactions.InternalEnlistment._twoPhaseState, System.Transactions.VolatileEnlistmentSet._volatileEnlistmentCount, System.Transactions.VolatileEnlistmentSet._volatileEnlistments, System.Transactions.EnlistmentState.ChangeStatePreparing(), System.Transactions.TransactionState.ContinuePhase0Prepares(), System.Transactions.InternalTransaction.State, and System.Transactions.TransactionState.TransactionStatePromotedNonMSDTCVolatilePhase1.