Enable ETW/EventSource logging of task IDs for boxed state machines (#27115) (#27217)
authorStephen Toub <stoub@microsoft.com>
Thu, 17 Oct 2019 15:32:29 +0000 (11:32 -0400)
committerDan Moseley <danmose@microsoft.com>
Thu, 17 Oct 2019 15:32:29 +0000 (08:32 -0700)
commitb9c739940772f2745e4fdf6c2951fd7c7d3c7be0
tree065a72c620987d26abd421214b009f1ed1ac4198
parent617091aa904c74fe8a42cebf7fcb56677c60c079
Enable ETW/EventSource logging of task IDs for boxed state machines (#27115) (#27217)

* Wrap MoveNext Action for TPL event tracing

Wraps the MoveNext action of the AsyncStateMachineBox in a
continuation wrapper when async causality tracing is on so that the
TPL event source can find the task that is associated with a
continuation. Does not wrap otherwise.

* Clarifying comment

* removing trailing whitespace

* code review feedback.

Makes AsyncMethodBuilderCore.TryFindContinuationTask check to
whether the target of a continuation is itself a task, as a fall-back
to checking to see if the continuation is a ContinuationWrapper

* Got rid of unnecessary null checks
src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs