Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AsyncIteratorMethodBuilder.cs
Go to the documentation of this file.
1
using
System.Runtime.InteropServices
;
2
using
System.Threading.Tasks
;
3
4
namespace
System.Runtime.CompilerServices
;
5
6
[StructLayout(
LayoutKind
.Auto)]
7
public
struct
AsyncIteratorMethodBuilder
8
{
9
private
Task<VoidTaskResult>
m_task
;
10
11
internal
object
ObjectIdForDebugger
=>
m_task
?? (
m_task
=
AsyncTaskMethodBuilder<VoidTaskResult>
.
CreateWeaklyTypedStateMachineBox
());
12
13
public
static
AsyncIteratorMethodBuilder
Create
()
14
{
15
return
default
(
AsyncIteratorMethodBuilder
);
16
}
17
18
[MethodImpl(
MethodImplOptions
.AggressiveInlining)]
19
public
void
MoveNext<TStateMachine>
(ref TStateMachine
stateMachine
) where TStateMachine :
IAsyncStateMachine
20
{
21
AsyncMethodBuilderCore
.Start(ref
stateMachine
);
22
}
23
24
public
void
AwaitOnCompleted<TAwaiter, TStateMachine>
(ref TAwaiter awaiter, ref TStateMachine
stateMachine
) where TAwaiter :
INotifyCompletion
where TStateMachine :
IAsyncStateMachine
25
{
26
AsyncTaskMethodBuilder<VoidTaskResult>
.AwaitOnCompleted(ref awaiter, ref
stateMachine
, ref
m_task
);
27
}
28
29
public
void
AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>
(ref TAwaiter awaiter, ref TStateMachine
stateMachine
) where TAwaiter :
ICriticalNotifyCompletion
where TStateMachine :
IAsyncStateMachine
30
{
31
AsyncTaskMethodBuilder<VoidTaskResult>
.AwaitUnsafeOnCompleted(ref awaiter, ref
stateMachine
, ref
m_task
);
32
}
33
34
public
void
Complete
()
35
{
36
if
(
m_task
==
null
)
37
{
38
m_task
=
Task
.
s_cachedCompleted
;
39
return
;
40
}
41
AsyncTaskMethodBuilder<VoidTaskResult>
.
SetExistingTaskResult
(
m_task
,
default
(
VoidTaskResult
));
42
if
(
m_task
is
IAsyncStateMachineBox
asyncStateMachineBox)
43
{
44
asyncStateMachineBox.ClearStateUponCompletion();
45
}
46
}
47
}
System.Runtime.CompilerServices.AsyncMethodBuilderCore
Definition
AsyncMethodBuilderCore.cs:12
System.Threading.Tasks.Task.s_cachedCompleted
static readonly Task< VoidTaskResult > s_cachedCompleted
Definition
Task.cs:966
System.Threading.Tasks.Task
Definition
Task.cs:14
System.Runtime.CompilerServices.IAsyncStateMachineBox
Definition
IAsyncStateMachineBox.cs:4
System.Runtime.CompilerServices.IAsyncStateMachine
Definition
IAsyncStateMachine.cs:4
System.Runtime.CompilerServices.ICriticalNotifyCompletion
Definition
ICriticalNotifyCompletion.cs:4
System.Runtime.CompilerServices.INotifyCompletion
Definition
INotifyCompletion.cs:4
System.Runtime.CompilerServices.MethodImplOptions
MethodImplOptions
Definition
MethodImplOptions.cs:5
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.Runtime.InteropServices.LayoutKind
LayoutKind
Definition
LayoutKind.cs:4
System.Runtime.InteropServices
Definition
SequenceMarshal.cs:4
System.Threading.Tasks
Definition
TaskToApm.cs:3
System.ExceptionArgument.stateMachine
@ stateMachine
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted< TAwaiter, TStateMachine >
void AwaitOnCompleted< TAwaiter, TStateMachine >(ref TAwaiter awaiter, ref TStateMachine stateMachine)
Definition
AsyncIteratorMethodBuilder.cs:24
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.m_task
Task< VoidTaskResult > m_task
Definition
AsyncIteratorMethodBuilder.cs:9
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted< TAwaiter, TStateMachine >
void AwaitUnsafeOnCompleted< TAwaiter, TStateMachine >(ref TAwaiter awaiter, ref TStateMachine stateMachine)
Definition
AsyncIteratorMethodBuilder.cs:29
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.ObjectIdForDebugger
object ObjectIdForDebugger
Definition
AsyncIteratorMethodBuilder.cs:11
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext< TStateMachine >
void MoveNext< TStateMachine >(ref TStateMachine stateMachine)
Definition
AsyncIteratorMethodBuilder.cs:19
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Create
static AsyncIteratorMethodBuilder Create()
Definition
AsyncIteratorMethodBuilder.cs:13
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Complete
void Complete()
Definition
AsyncIteratorMethodBuilder.cs:34
System.Runtime.CompilerServices.AsyncIteratorMethodBuilder
Definition
AsyncIteratorMethodBuilder.cs:8
System.Runtime.CompilerServices.AsyncTaskMethodBuilder.CreateWeaklyTypedStateMachineBox
static Task< TResult > CreateWeaklyTypedStateMachineBox()
Definition
AsyncTaskMethodBuilder.cs:316
System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetExistingTaskResult
static void SetExistingTaskResult(Task< TResult > task, TResult result)
Definition
AsyncTaskMethodBuilder.cs:337
System.Runtime.CompilerServices.AsyncTaskMethodBuilder
Definition
AsyncTaskMethodBuilder.cs:81
System.Threading.Tasks.VoidTaskResult
Definition
VoidTaskResult.cs:7
source
System.Private.CoreLib
System.Runtime.CompilerServices
AsyncIteratorMethodBuilder.cs
Generated by
1.10.0