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

◆ EnterState()

override void System.Transactions.TransactionStateVolatilePhase1.EnterState ( InternalTransaction tx)
inlinepackage

Definition at line 5 of file TransactionStateVolatilePhase1.cs.

6 {
8 tx._committableTransaction._complete = true;
9 if (tx._phase1Volatiles._dependentClones != 0)
10 {
11 TransactionState.TransactionStateAborted.EnterState(tx);
12 }
13 else if (tx._phase1Volatiles._volatileEnlistmentCount == 1 && tx._durableEnlistment == null && tx._phase1Volatiles._volatileEnlistments[0].SinglePhaseNotification != null)
14 {
15 TransactionState.TransactionStateVolatileSPC.EnterState(tx);
16 }
17 else if (tx._phase1Volatiles._volatileEnlistmentCount > 0)
18 {
19 for (int i = 0; i < tx._phase1Volatiles._volatileEnlistmentCount; i++)
20 {
21 tx._phase1Volatiles._volatileEnlistments[i]._twoPhaseState.ChangeStatePreparing(tx._phase1Volatiles._volatileEnlistments[i]);
22 if (!tx.State.ContinuePhase1Prepares())
23 {
24 break;
25 }
26 }
27 }
28 else
29 {
30 TransactionState.TransactionStateSPC.EnterState(tx);
31 }
32 }
void CommonEnterState(InternalTransaction tx)

References System.Transactions.VolatileEnlistmentSet._dependentClones, System.Transactions.InternalTransaction._durableEnlistment, System.Transactions.InternalTransaction._phase1Volatiles, System.Transactions.InternalEnlistment._twoPhaseState, System.Transactions.VolatileEnlistmentSet._volatileEnlistmentCount, System.Transactions.VolatileEnlistmentSet._volatileEnlistments, System.Transactions.EnlistmentState.ChangeStatePreparing(), System.Transactions.TransactionState.CommonEnterState(), System.Transactions.TransactionState.ContinuePhase1Prepares(), System.Transactions.InternalEnlistment.SinglePhaseNotification, System.Transactions.InternalTransaction.State, System.Transactions.TransactionState.TransactionStateAborted, System.Transactions.TransactionState.TransactionStateSPC, and System.Transactions.TransactionState.TransactionStateVolatileSPC.