Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ConfiguredValueTaskAwaitable.cs
Go to the documentation of this file.
6
8
9[StructLayout(LayoutKind.Auto)]
10public readonly struct ConfiguredValueTaskAwaitable
11{
12 [StructLayout(LayoutKind.Auto)]
13 public readonly struct ConfiguredValueTaskAwaiter : ICriticalNotifyCompletion, INotifyCompletion, IStateMachineBoxAwareAwaiter
14 {
15 private readonly ValueTask _value;
16
17 public bool IsCompleted
18 {
19 [MethodImpl(MethodImplOptions.AggressiveInlining)]
20 get
21 {
22 return _value.IsCompleted;
23 }
24 }
25
26 [MethodImpl(MethodImplOptions.AggressiveInlining)]
31
32 [MethodImpl(MethodImplOptions.AggressiveInlining)]
33 public void GetResult()
34 {
36 }
37
38 public void OnCompleted(Action continuation)
39 {
40 object obj = _value._obj;
41 if (obj is Task task)
42 {
43 task.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
44 }
45 else if (obj != null)
46 {
48 }
49 else
50 {
51 Task.CompletedTask.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
52 }
53 }
54
55 public void UnsafeOnCompleted(Action continuation)
56 {
57 object obj = _value._obj;
58 if (obj is Task task)
59 {
60 task.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
61 }
62 else if (obj != null)
63 {
65 }
66 else
67 {
68 Task.CompletedTask.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
69 }
70 }
71
88 }
89
90 private readonly ValueTask _value;
91
92 [MethodImpl(MethodImplOptions.AggressiveInlining)]
97
98 [MethodImpl(MethodImplOptions.AggressiveInlining)]
103}
104[StructLayout(LayoutKind.Auto)]
106{
107 [StructLayout(LayoutKind.Auto)]
109 {
110 private readonly ValueTask<TResult> _value;
111
112 public bool IsCompleted
113 {
114 [MethodImpl(MethodImplOptions.AggressiveInlining)]
115 get
116 {
117 return _value.IsCompleted;
118 }
119 }
120
121 [MethodImpl(MethodImplOptions.AggressiveInlining)]
126
127 [MethodImpl(MethodImplOptions.AggressiveInlining)]
129 {
130 return _value.Result;
131 }
132
133 public void OnCompleted(Action continuation)
134 {
135 object obj = _value._obj;
136 if (obj is Task<TResult> task)
137 {
138 task.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
139 }
140 else if (obj != null)
141 {
143 }
144 else
145 {
146 Task.CompletedTask.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().OnCompleted(continuation);
147 }
148 }
149
150 public void UnsafeOnCompleted(Action continuation)
151 {
152 object obj = _value._obj;
153 if (obj is Task<TResult> task)
154 {
155 task.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
156 }
157 else if (obj != null)
158 {
160 }
161 else
162 {
163 Task.CompletedTask.ConfigureAwait(_value._continueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(continuation);
164 }
165 }
166
183 }
184
185 private readonly ValueTask<TResult> _value;
186
187 [MethodImpl(MethodImplOptions.AggressiveInlining)]
192
193 [MethodImpl(MethodImplOptions.AggressiveInlining)]
198}
static Task CompletedTask
Definition Task.cs:1120
static readonly Action< object > s_invokeAsyncStateMachineBox
Definition ThreadPool.cs:18
static void UnsafeOnCompletedInternal(Task task, IAsyncStateMachineBox stateMachineBox, bool continueOnCapturedContext)
static readonly Action< object > s_invokeActionDelegate
readonly bool _continueOnCapturedContext
Definition ValueTask.cs:69