Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ OutputCorrelationEtwEvent()

static Action System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.OutputCorrelationEtwEvent ( Action continuation)
inlinestaticprivate

Definition at line 92 of file YieldAwaitable.cs.

93 {
94 int num = Task.NewId();
95 Task internalCurrent = Task.InternalCurrent;
96 TplEventSource.Log.AwaitTaskContinuationScheduled(TaskScheduler.Current.Id, internalCurrent?.Id ?? 0, num);
97 return AsyncMethodBuilderCore.CreateContinuationWrapper(continuation, delegate(Action innerContinuation, Task continuationIdTask)
98 {
100 log.TaskWaitContinuationStarted(((Task<int>)continuationIdTask).Result);
101 Guid oldActivityThatWillContinue = default(Guid);
102 if (log.TasksSetActivityIds)
103 {
104 EventSource.SetCurrentThreadActivityId(TplEventSource.CreateGuidForTaskID(((Task<int>)continuationIdTask).Result), out oldActivityThatWillContinue);
105 }
106 innerContinuation();
107 if (log.TasksSetActivityIds)
108 {
109 EventSource.SetCurrentThreadActivityId(oldActivityThatWillContinue);
110 }
111 log.TaskWaitContinuationComplete(((Task<int>)continuationIdTask).Result);
112 }, Task.FromResult(num));
113 }
static ? Task InternalCurrent
Definition Task.cs:1011
static readonly TplEventSource Log

References System.Runtime.CompilerServices.AsyncMethodBuilderCore.CreateContinuationWrapper(), System.Threading.Tasks.TaskScheduler.Current, System.Threading.Tasks.Task< TResult >.Id, System.Threading.Tasks.Task< TResult >.InternalCurrent, System.Threading.Tasks.TplEventSource.Log, System.Threading.Tasks.Task< TResult >.NewId(), System.Threading.Tasks.TplEventSource.TasksSetActivityIds, System.Threading.Tasks.TplEventSource.TaskWaitContinuationComplete(), and System.Threading.Tasks.TplEventSource.TaskWaitContinuationStarted().

Referenced by System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.QueueContinuation().