Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
VolatileEnlistmentSPC.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;
12 if (log.IsEnabled())
13 {
14 log.EnlistmentStatus(enlistment, NotificationCall.SinglePhaseCommit);
15 }
16 Monitor.Exit(enlistment.Transaction);
17 try
18 {
20 flag = true;
21 }
22 finally
23 {
24 if (!flag)
25 {
26 enlistment.SinglePhaseEnlistment.InDoubt();
27 }
28 Monitor.Enter(enlistment.Transaction);
29 }
30 }
31
32 internal override void EnlistmentDone(InternalEnlistment enlistment)
33 {
36 }
37
38 internal override void Committed(InternalEnlistment enlistment)
39 {
42 }
43
44 internal override void Aborted(InternalEnlistment enlistment, Exception e)
45 {
48 }
49
50 internal override void InDoubt(InternalEnlistment enlistment, Exception e)
51 {
53 if (enlistment.Transaction._innerException == null)
54 {
55 enlistment.Transaction._innerException = e;
56 }
58 }
59}
static void Exit(object obj)
static void Enter(object obj)
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
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 VolatileEnlistmentEnded VolatileEnlistmentEnded
void SinglePhaseCommit(SinglePhaseEnlistment singlePhaseEnlistment)