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

◆ EnlistDurable() [2/2]

override Enlistment System.Transactions.TransactionStatePromotedBase.EnlistDurable ( InternalTransaction tx,
Guid resourceManagerIdentifier,
ISinglePhaseNotification enlistmentNotification,
EnlistmentOptions enlistmentOptions,
Transaction atomicTransaction )
inlinepackagevirtualinherited

Reimplemented from System.Transactions.TransactionState.

Definition at line 62 of file TransactionStatePromotedBase.cs.

63 {
64 tx.ThrowIfPromoterTypeIsNotMSDTC();
65 Monitor.Exit(tx);
66 try
67 {
68 Enlistment enlistment = new Enlistment(resourceManagerIdentifier, tx, enlistmentNotification, enlistmentNotification, atomicTransaction);
69 EnlistmentState.EnlistmentStatePromoted.EnterState(enlistment.InternalEnlistment);
70 enlistment.InternalEnlistment.PromotedEnlistment = tx.PromotedTransaction.EnlistDurable(resourceManagerIdentifier, (DurableInternalEnlistment)enlistment.InternalEnlistment, v: true, enlistmentOptions);
71 return enlistment;
72 }
73 finally
74 {
75 Monitor.Enter(tx);
76 }
77 }
static void Exit(object obj)
static void Enter(object obj)

References System.Transactions.Distributed.DistributedTransaction.EnlistDurable(), System.Transactions.EnlistmentState.EnlistmentStatePromoted, System.Threading.Monitor.Enter(), System.Threading.Monitor.Exit(), System.Transactions.Enlistment.InternalEnlistment, System.Transactions.InternalTransaction.PromotedTransaction, and System.Transactions.InternalTransaction.ThrowIfPromoterTypeIsNotMSDTC().