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

◆ CompleteBlockingClone()

override void System.Transactions.TransactionStatePromotedBase.CompleteBlockingClone ( InternalTransaction tx)
inlinepackagevirtualinherited

Reimplemented from System.Transactions.TransactionState.

Definition at line 128 of file TransactionStatePromotedBase.cs.

129 {
130 if (tx._phase0Volatiles._dependentClones > 0)
131 {
132 tx._phase0Volatiles._dependentClones--;
133 if (tx._phase0Volatiles._preparedVolatileEnlistments == tx._phase0VolatileWaveCount + tx._phase0Volatiles._dependentClones)
134 {
135 tx.State.Phase0VolatilePrepareDone(tx);
136 }
137 return;
138 }
139 tx._phase0WaveDependentCloneCount--;
140 if (tx._phase0WaveDependentCloneCount != 0)
141 {
142 return;
143 }
144 DistributedDependentTransaction phase0WaveDependentClone = tx._phase0WaveDependentClone;
145 tx._phase0WaveDependentClone = null;
146 Monitor.Exit(tx);
147 try
148 {
149 try
150 {
151 phase0WaveDependentClone.Complete();
152 }
153 finally
154 {
155 phase0WaveDependentClone.Dispose();
156 }
157 }
158 finally
159 {
160 Monitor.Enter(tx);
161 }
162 }
static void Exit(object obj)
static void Enter(object obj)

References System.Transactions.VolatileEnlistmentSet._dependentClones, System.Transactions.InternalTransaction._phase0Volatiles, System.Transactions.InternalTransaction._phase0VolatileWaveCount, System.Transactions.InternalTransaction._phase0WaveDependentClone, System.Transactions.InternalTransaction._phase0WaveDependentCloneCount, System.Transactions.VolatileEnlistmentSet._preparedVolatileEnlistments, System.Transactions.Distributed.DistributedDependentTransaction.Complete(), System.Transactions.Distributed.DistributedTransaction.Dispose(), System.Threading.Monitor.Enter(), System.Threading.Monitor.Exit(), System.Transactions.TransactionState.Phase0VolatilePrepareDone(), and System.Transactions.InternalTransaction.State.