@@ -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