Repository navigation
Publish color overrides atomically - #233
Open
rksharma-owg wants to merge 4 commits into
Open
rksharma-owg wants to merge 4 commits into
rksharma-owg wants to merge 4 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
ShouldColorizecurrently publishes its manual-override flag before its value using two relaxed atomics. A concurrent reader can see a newly enabled override with the previous value, producing a color decision that matches neither the automatic setting nor the requested override.Store automatic, forced-on and forced-off states in one private atomic byte. Public methods and environment-variable precedence stay the same. Add two Loom tests using the actual control implementation and a transition test covering restoration of all six environment decisions. Both Loom tests fail on the original implementation and pass with the fix.
Two existing CI blockers are repaired in separate commits: use iterator indices in the nested-style reset loop for current Clippy, and resolve test dependencies against the declared MSRV using modern Cargo before compiling/testing with Rust 1.80. Stable and beta continue testing their usual dependency resolution. The Clippy repair and MSRV repair are also preserved on separate fork branches.
Validation:
848b2c77336dfe3df97bb7cda5db147351471c41, including stable/beta/1.80 tests and Clippy across Linux, macOS and Windows, formatting, Loom, and semver compatibility against5204a26619e10fda0adc77f07588811d6102a40d.Fixes #229.