PerformanceCounterLib instances are stored in a static table such that there's a single instance for a machine/LCID combination. As such there is an expectation that operations are thread safe (since to the caller they appear to be static operations)
The code attempts to achieve this but it appears to have holes, eg _customCategoryTable, a HashTable, is modified here without protection against concurrent write at this same location (or in other places).
Make a pss through PerformanceCounterLib to make it thread safe through its static members.
dotnet/corefx#25401
PerformanceCounterLib instances are stored in a static table such that there's a single instance for a machine/LCID combination. As such there is an expectation that operations are thread safe (since to the caller they appear to be static operations)
The code attempts to achieve this but it appears to have holes, eg _customCategoryTable, a HashTable, is modified here without protection against concurrent write at this same location (or in other places).
Make a pss through PerformanceCounterLib to make it thread safe through its static members.
dotnet/corefx#25401