Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CallContextCurrentData.cs
Go to the documentation of this file.
4
5namespace System.Transactions;
6
7internal static class CallContextCurrentData
8{
10
12
14 {
15 s_currentTransaction.Value = contextKey;
16 return s_contextDataTable.GetValue(contextKey, (ContextKey env) => new ContextData(asyncFlow: true));
17 }
18
19 public static void ClearCurrentData(ContextKey contextKey, bool removeContextData)
20 {
22 if (contextKey != null || value != null)
23 {
24 if (removeContextData)
25 {
26 s_contextDataTable.Remove(contextKey ?? value);
27 }
28 if (value != null)
29 {
30 s_currentTransaction.Value = null;
31 }
32 }
33 }
34
35 public static bool TryGetCurrentData([NotNullWhen(true)] out ContextData currentData)
36 {
37 currentData = null;
39 if (value == null)
40 {
41 return false;
42 }
43 return s_contextDataTable.TryGetValue(value, out currentData);
44 }
45}
static readonly ConditionalWeakTable< ContextKey, ContextData > s_contextDataTable
static ContextData CreateOrGetCurrentData(ContextKey contextKey)
static void ClearCurrentData(ContextKey contextKey, bool removeContextData)
static bool TryGetCurrentData([NotNullWhen(true)] out ContextData currentData)
static readonly AsyncLocal< ContextKey > s_currentTransaction