summaryrefslogtreecommitdiff
path: root/src/System.Private.CoreLib/shared/System
diff options
context:
space:
mode:
Diffstat (limited to 'src/System.Private.CoreLib/shared/System')
-rw-r--r--src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs4
-rw-r--r--src/System.Private.CoreLib/shared/System/Threading/Tasks/AsyncCausalityTracer.Noop.cs77
2 files changed, 79 insertions, 2 deletions
diff --git a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs
index b44df7a0cd..f6692e8b43 100644
--- a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs
+++ b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/AsyncMethodBuilder.cs
@@ -578,7 +578,7 @@ namespace System.Runtime.CompilerServices
bool loggingOn = AsyncCausalitySupport.LoggingOn;
if (loggingOn)
{
- AsyncCausalitySupport.TraceSynchronousWorkStart(this);
+ AsyncCausalityTracer.TraceSynchronousWorkStart(CausalityTraceLevel.Required, this.Id, CausalitySynchronousWork.Execution);
}
ExecutionContext context = Context;
@@ -619,7 +619,7 @@ namespace System.Runtime.CompilerServices
if (loggingOn)
{
- AsyncCausalitySupport.TraceSynchronousWorkCompletion();
+ AsyncCausalityTracer.TraceSynchronousWorkCompletion(CausalityTraceLevel.Required, CausalitySynchronousWork.Execution);
}
}
diff --git a/src/System.Private.CoreLib/shared/System/Threading/Tasks/AsyncCausalityTracer.Noop.cs b/src/System.Private.CoreLib/shared/System/Threading/Tasks/AsyncCausalityTracer.Noop.cs
new file mode 100644
index 0000000000..c3f787b36b
--- /dev/null
+++ b/src/System.Private.CoreLib/shared/System/Threading/Tasks/AsyncCausalityTracer.Noop.cs
@@ -0,0 +1,77 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.Diagnostics;
+
+namespace System.Threading.Tasks
+{
+ internal enum CausalityTraceLevel
+ {
+ Required = 0,
+ Important = 1,
+ Verbose = 2,
+ }
+
+ internal enum AsyncCausalityStatus
+ {
+ Started = 0,
+ Completed = 1,
+ Canceled = 2,
+ Error = 3,
+ }
+
+ internal enum CausalityRelation
+ {
+ AssignDelegate = 0,
+ Join = 1,
+ Choice = 2,
+ Cancel = 3,
+ Error = 4,
+ }
+
+ internal enum CausalitySynchronousWork
+ {
+ CompletionNotification = 0,
+ ProgressNotification = 1,
+ Execution = 2,
+ }
+
+ //
+ // Empty implementation of AsyncCausality events
+ //
+ internal static class AsyncCausalityTracer
+ {
+ public static bool LoggingOn => false;
+
+ [Conditional("NOOP_ASYNCCASUALITYTRACER")]
+ public static void EnableToETW(bool enabled)
+ {
+ }
+
+ [Conditional("NOOP_ASYNCCASUALITYTRACER")]
+ public static void TraceOperationCreation(CausalityTraceLevel traceLevel, int taskId, string operationName, ulong relatedContext)
+ {
+ }
+
+ [Conditional("NOOP_ASYNCCASUALITYTRACER")]
+ public static void TraceOperationCompletion(CausalityTraceLevel traceLevel, int taskId, AsyncCausalityStatus status)
+ {
+ }
+
+ [Conditional("NOOP_ASYNCCASUALITYTRACER")]
+ public static void TraceOperationRelation(CausalityTraceLevel traceLevel, int taskId, CausalityRelation relation)
+ {
+ }
+
+ [Conditional("NOOP_ASYNCCASUALITYTRACER")]
+ public static void TraceSynchronousWorkStart(CausalityTraceLevel traceLevel, int taskId, CausalitySynchronousWork work)
+ {
+ }
+
+ [Conditional("NOOP_ASYNCCASUALITYTRACER")]
+ public static void TraceSynchronousWorkCompletion(CausalityTraceLevel traceLevel, CausalitySynchronousWork work)
+ {
+ }
+ }
+}