Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DurableEnlistmentCommitting.cs
Go to the documentation of this file.
2
3namespace System.Transactions;
4
6{
7 internal override void EnterState(InternalEnlistment enlistment)
8 {
9 bool flag = false;
10 enlistment.State = this;
11 Monitor.Exit(enlistment.Transaction);
12 try
13 {
15 if (log.IsEnabled())
16 {
17 log.EnlistmentStatus(enlistment, NotificationCall.SinglePhaseCommit);
18 }
19 if (enlistment.SinglePhaseNotification != null)
20 {
22 }
23 else
24 {
26 }
27 flag = true;
28 }
29 finally
30 {
31 if (!flag)
32 {
33 enlistment.SinglePhaseEnlistment.InDoubt();
34 }
35 Monitor.Enter(enlistment.Transaction);
36 }
37 }
38
39 internal override void EnlistmentDone(InternalEnlistment enlistment)
40 {
43 }
44
45 internal override void Committed(InternalEnlistment enlistment)
46 {
49 }
50
51 internal override void Aborted(InternalEnlistment enlistment, Exception e)
52 {
55 }
56
57 internal override void InDoubt(InternalEnlistment enlistment, Exception e)
58 {
60 if (enlistment.Transaction._innerException == null)
61 {
62 enlistment.Transaction._innerException = e;
63 }
65 }
66}
static void Exit(object obj)
static void Enter(object obj)
override void EnterState(InternalEnlistment enlistment)
override void Aborted(InternalEnlistment enlistment, Exception e)
override void EnlistmentDone(InternalEnlistment enlistment)
override void Committed(InternalEnlistment enlistment)
override void InDoubt(InternalEnlistment enlistment, Exception e)
static DurableEnlistmentEnded DurableEnlistmentEnded
virtual IPromotableSinglePhaseNotification PromotableSinglePhaseNotification
ISinglePhaseNotification SinglePhaseNotification
virtual void InDoubtFromEnlistment(InternalTransaction tx)
virtual void ChangeStateTransactionAborted(InternalTransaction tx, Exception e)
virtual void ChangeStateTransactionCommitted(InternalTransaction tx)
void EnlistmentStatus(InternalEnlistment enlistment, NotificationCall notificationCall)
static readonly TransactionsEtwProvider Log
void SinglePhaseCommit(SinglePhaseEnlistment singlePhaseEnlistment)
void SinglePhaseCommit(SinglePhaseEnlistment singlePhaseEnlistment)