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

◆ EnterState()

override void System.Transactions.DurableEnlistmentCommitting.EnterState ( InternalEnlistment enlistment)
inlinepackage

Definition at line 7 of file DurableEnlistmentCommitting.cs.

8 {
9 bool flag = false;
10 enlistment.State = this;
11 Monitor.Exit(enlistment.Transaction);
12 try
13 {
14 TransactionsEtwProvider log = TransactionsEtwProvider.Log;
15 if (log.IsEnabled())
16 {
17 log.EnlistmentStatus(enlistment, NotificationCall.SinglePhaseCommit);
18 }
19 if (enlistment.SinglePhaseNotification != null)
20 {
21 enlistment.SinglePhaseNotification.SinglePhaseCommit(enlistment.SinglePhaseEnlistment);
22 }
23 else
24 {
25 enlistment.PromotableSinglePhaseNotification.SinglePhaseCommit(enlistment.SinglePhaseEnlistment);
26 }
27 flag = true;
28 }
29 finally
30 {
31 if (!flag)
32 {
33 enlistment.SinglePhaseEnlistment.InDoubt();
34 }
35 Monitor.Enter(enlistment.Transaction);
36 }
37 }
static void Exit(object obj)
static void Enter(object obj)

References System.Transactions.TransactionsEtwProvider.EnlistmentStatus(), System.Threading.Monitor.Enter(), System.Threading.Monitor.Exit(), System.Transactions.SinglePhaseEnlistment.InDoubt(), System.Diagnostics.Tracing.EventSource.IsEnabled(), System.Transactions.TransactionsEtwProvider.Log, System.Transactions.InternalEnlistment.PromotableSinglePhaseNotification, System.Transactions.IPromotableSinglePhaseNotification.SinglePhaseCommit(), System.Transactions.ISinglePhaseNotification.SinglePhaseCommit(), System.Transactions.InternalEnlistment.SinglePhaseEnlistment, System.Transactions.InternalEnlistment.SinglePhaseNotification, and System.Transactions.InternalEnlistment.Transaction.