This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
Merge System.Diagnostics.Tracing.EventCounter fix to release #24342
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
System.Diagnostics.Tracing.EventCounter relies on a relatively new callback added to System.Diagnostics.Tracing.EventSource. Due to an build configuration problem the code that calls this callback was #ifdefed out in the .NET Core 2.0 release. This was fixed months ago but the fix has not made it into the release branches.
The result is that EventCounters can't be turned on (that is if you signal to the EventSource that you want EventCounter data, it is ignored). This makes the type useless.
This PR merges the fix from the master branch for this issue. It also fixes a number of races associated with the code that happened to be fixed in the same PR as well as beefed up the testing.
The change is safe because it only affect EventCounter (or its testing), and currently EventCounter is pretty broken .