Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ContextData.cs
Go to the documentation of this file.
2
3namespace System.Transactions;
4
5internal sealed class ContextData
6{
8
10
12
14
15 internal bool _asyncFlow;
16
17 [ThreadStatic]
18 private static ContextData t_staticData;
19
21 {
22 get
23 {
24 ContextData contextData = t_staticData;
25 if (contextData == null)
26 {
27 contextData = (t_staticData = new ContextData(asyncFlow: false));
28 }
29 return contextData;
30 }
31 [param: AllowNull]
32 set
33 {
34 if (value == null && t_staticData != null)
35 {
36 t_staticData.CurrentScope = null;
37 t_staticData.CurrentTransaction = null;
38 t_staticData.DefaultComContextState = DefaultComContextState.Unknown;
39 t_staticData.WeakDefaultComContext = null;
40 }
41 else
42 {
44 }
45 }
46 }
47
48 internal ContextData(bool asyncFlow)
49 {
50 _asyncFlow = asyncFlow;
51 }
52
53 internal static ContextData LookupContextData(TxLookup defaultLookup)
54 {
55 ContextData currentData = null;
56 if (CallContextCurrentData.TryGetCurrentData(out currentData))
57 {
58 if (currentData.CurrentScope == null && currentData.CurrentTransaction == null && defaultLookup != TxLookup.DefaultCallContext)
59 {
60 CallContextCurrentData.ClearCurrentData(null, removeContextData: true);
61 return TLSCurrentData;
62 }
63 return currentData;
64 }
65 return TLSCurrentData;
66 }
67}
static void ClearCurrentData(ContextKey contextKey, bool removeContextData)
static bool TryGetCurrentData([NotNullWhen(true)] out ContextData currentData)
DefaultComContextState DefaultComContextState
static ContextData t_staticData
TransactionScope CurrentScope
Definition ContextData.cs:7
static ContextData LookupContextData(TxLookup defaultLookup)
static ContextData TLSCurrentData