Skip to content

Commit 539c2ee

Browse files
Group Task/Opcodes/Keywords in ClrThreadPoolEventSource (dotnet#7296)
EventSource requires these specially named nested types.
1 parent 45c98ba commit 539c2ee

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

src/System.Private.CoreLib/src/System/Threading/ClrThreadPoolEventSource.cs

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,49 @@ public sealed class ClrThreadPoolEventSource : EventSource
1414
private const string WorkerThreadAdjustmentAdjustmentEventMessage = "AverageThroughput=%1;%nNewWorkerThreadCount=%2;%nReason=%3";
1515
private const string WorkerThreadAdjustmentStatsEventMessage = "Duration=%1;%nThroughput=%2;%nThreadWave=%3;%nThroughputWave=%4;%nThroughputErrorEstimate=%5;%nAverageThroughputErrorEstimate=%6;%nThroughputRatio=%7;%nConfidence=%8;%nNewControlSetting=%9;%nNewThreadWaveMagnitude=%10";
1616

17-
// We have these constants here because EventTask, EventOpcode, and EventKeywords are public APIs, and we don't want to expose these values to the end user to use in their events.
18-
private const EventTask WorkerThreadTask = (EventTask)16;
19-
private const EventTask WorkerThreadAdjustmentTask = (EventTask)18;
17+
// The task definitions for the ETW manifest
18+
public static class Tasks
19+
{
20+
public const EventTask WorkerThreadTask = (EventTask)16;
21+
public const EventTask WorkerThreadAdjustmentTask = (EventTask)18;
22+
}
2023

21-
private const EventOpcode WaitOpcode = (EventOpcode)90;
22-
private const EventOpcode SampleOpcode = (EventOpcode)100;
23-
private const EventOpcode AdjustmentOpcode = (EventOpcode)101;
24-
private const EventOpcode StatsOpcode = (EventOpcode)102;
25-
private const EventKeywords ThreadingKeyword = (EventKeywords)0x10000;
24+
public static class Opcodes
25+
{
26+
public const EventOpcode WaitOpcode = (EventOpcode)90;
27+
public const EventOpcode SampleOpcode = (EventOpcode)100;
28+
public const EventOpcode AdjustmentOpcode = (EventOpcode)101;
29+
public const EventOpcode StatsOpcode = (EventOpcode)102;
30+
}
31+
32+
public static class Keywords
33+
{
34+
public const EventKeywords ThreadingKeyword = (EventKeywords)0x10000;
35+
}
2636

2737
private ClrThreadPoolEventSource()
2838
{
2939
}
3040

31-
[Event(1, Level = EventLevel.Informational, Message = WorkerThreadMessage, Task = WorkerThreadTask, Opcode = EventOpcode.Start, Version = 0, Keywords = ThreadingKeyword)]
41+
[Event(1, Level = EventLevel.Informational, Message = WorkerThreadMessage, Task = Tasks.WorkerThreadTask, Opcode = EventOpcode.Start, Version = 0, Keywords = Keywords.ThreadingKeyword)]
3242
public void WorkerThreadStart(short numExistingThreads)
3343
{
3444
WriteEvent(1, numExistingThreads);
3545
}
3646

37-
[Event(2, Level = EventLevel.Informational, Message = WorkerThreadMessage, Task = WorkerThreadTask, Opcode = EventOpcode.Stop, Version = 0, Keywords = ThreadingKeyword)]
47+
[Event(2, Level = EventLevel.Informational, Message = WorkerThreadMessage, Task = Tasks.WorkerThreadTask, Opcode = EventOpcode.Stop, Version = 0, Keywords = Keywords.ThreadingKeyword)]
3848
public void WorkerThreadStop(short numExistingThreads)
3949
{
4050
WriteEvent(2, numExistingThreads);
4151
}
4252

43-
[Event(3, Level = EventLevel.Informational, Message = WorkerThreadMessage, Task = WorkerThreadTask, Opcode = WaitOpcode, Version = 0, Keywords = ThreadingKeyword)]
53+
[Event(3, Level = EventLevel.Informational, Message = WorkerThreadMessage, Task = Tasks.WorkerThreadTask, Opcode = Opcodes.WaitOpcode, Version = 0, Keywords = Keywords.ThreadingKeyword)]
4454
public void WorkerThreadWait(short numExistingThreads)
4555
{
4656
WriteEvent(3, numExistingThreads);
4757
}
4858

49-
[Event(4, Level = EventLevel.Informational, Message = WorkerThreadAdjustmentSampleMessage, Opcode = SampleOpcode, Version = 0, Task = WorkerThreadAdjustmentTask, Keywords = ThreadingKeyword)]
59+
[Event(4, Level = EventLevel.Informational, Message = WorkerThreadAdjustmentSampleMessage, Opcode = Opcodes.SampleOpcode, Version = 0, Task = Tasks.WorkerThreadAdjustmentTask, Keywords = Keywords.ThreadingKeyword)]
5060
public unsafe void WorkerThreadAdjustmentSample(double throughput)
5161
{
5262
if (IsEnabled())
@@ -58,7 +68,7 @@ public unsafe void WorkerThreadAdjustmentSample(double throughput)
5868
}
5969
}
6070

61-
[Event(5, Level = EventLevel.Informational, Message = WorkerThreadAdjustmentSampleMessage, Opcode = AdjustmentOpcode, Version = 0, Task = WorkerThreadAdjustmentTask, Keywords = ThreadingKeyword)]
71+
[Event(5, Level = EventLevel.Informational, Message = WorkerThreadAdjustmentSampleMessage, Opcode = Opcodes.AdjustmentOpcode, Version = 0, Task = Tasks.WorkerThreadAdjustmentTask, Keywords = Keywords.ThreadingKeyword)]
6272
public unsafe void WorkerThreadAdjustmentAdjustment(double averageThroughput, int newWorkerThreadCount, int stateOrTransition)
6373
{
6474
if (IsEnabled())
@@ -74,7 +84,7 @@ public unsafe void WorkerThreadAdjustmentAdjustment(double averageThroughput, in
7484
}
7585
}
7686

77-
[Event(6, Level = EventLevel.Verbose, Message = WorkerThreadAdjustmentSampleMessage, Opcode = StatsOpcode, Version = 0, Task = WorkerThreadAdjustmentTask, Keywords = ThreadingKeyword)]
87+
[Event(6, Level = EventLevel.Verbose, Message = WorkerThreadAdjustmentSampleMessage, Opcode = Opcodes.StatsOpcode, Version = 0, Task = Tasks.WorkerThreadAdjustmentTask, Keywords = Keywords.ThreadingKeyword)]
7888
[CLSCompliant(false)]
7989
public unsafe void WorkerThreadAdjustmentStats(double duration, double throughput, double threadWave, double throughputWave, double throughputErrorEstimate,
8090
double averageThroughputNoise, double ratio, double confidence, double currentControlSetting, ushort newThreadWaveMagnitude)

0 commit comments

Comments
 (0)