Use new Interlocked.Exchange/CompareExchange overloads that support bool values #4585
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.
This PR updates places that use
Interlocked.Exchange
and/orInterlocked.CompareExchange
withint
values that are really booleans because, historically, the typebool
wasn't supported to use the new overloads in .NET 9.0+ that do supportbool
. As the code has targets older than .NET 9.0, these are all used conditionally, with fallback toint
on older platforms. Constants namedTRUE
andFALSE
are used, tracking the actual type of the backing field, so that the actual code doesn't need separate implementations.Closes: #3686