-
Notifications
You must be signed in to change notification settings - Fork 258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add set_max_level_racy
and gate set_max_level
#544
Conversation
/// [`set_max_level`]: fn.set_max_level.html | ||
#[inline] | ||
pub unsafe fn set_max_level_racy(level: LevelFilter) { | ||
MAX_LOG_LEVEL_FILTER.store(level as usize, Ordering::Relaxed); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the same as the other function?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but the type of MAX_LOG_LEVEL_FILTER
is different (core::sync::AtomicUsize
vs log::AtomicUsize
). When a platform doesn't support atomic_cas
, the underlying implementation uses a Cell<usize>
which can race with interrupts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, that makes sense. Then maybe a note pointing that out would be worth it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that's a good idea, added a comment.
Calling `set_max_level` can result in a race condition on platforms that don't have an atomic compare and swap implementation. This gates `set_max_level` behind `#[cfg(atomic_cas)]` and adds a racy alternative that can be called in these situations. This mirrors the approach for `set_logger`.
4d17cdb
to
e5f1ae9
Compare
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://togithub.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://togithub.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://togithub.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://togithub.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://togithub.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://togithub.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://togithub.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://togithub.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://togithub.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://togithub.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://togithub.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://togithub.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://togithub.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://togithub.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://togithub.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://togithub.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://togithub.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://togithub.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://togithub.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://togithub.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://togithub.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://togithub.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://togithub.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://togithub.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://togithub.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://togithub.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/ziyadedher/evm-bench). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://togithub.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://togithub.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://togithub.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://togithub.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://togithub.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://togithub.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://togithub.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://togithub.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://togithub.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://togithub.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://togithub.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://togithub.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://togithub.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://togithub.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://togithub.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://togithub.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://togithub.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://togithub.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://togithub.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://togithub.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://togithub.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://togithub.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://togithub.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://togithub.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://togithub.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://togithub.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/SilenLoc/TypeFast). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://togithub.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://togithub.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://togithub.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://togithub.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://togithub.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://togithub.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://togithub.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://togithub.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://togithub.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://togithub.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://togithub.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://togithub.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://togithub.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://togithub.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://togithub.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://togithub.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://togithub.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://togithub.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://togithub.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://togithub.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://togithub.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://togithub.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://togithub.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://togithub.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://togithub.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://togithub.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/knope-dev/knope). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://togithub.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.18` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.18`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://togithub.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://togithub.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://togithub.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://togithub.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://togithub.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://togithub.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://togithub.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://togithub.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://togithub.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://togithub.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://togithub.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://togithub.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://togithub.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://togithub.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://togithub.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://togithub.com/rust-lang/log/pull/547) - Remove build.rs file by [@​GuillaumeGomez](https://togithub.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/543](https://togithub.com/rust-lang/log/pull/543) - Use stable internals for key-value API by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://togithub.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://togithub.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://togithub.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://togithub.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://togithub.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://togithub.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://togithub.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/knope-dev/knope). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://github.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.19` | --- ### Release Notes <details> <summary>rust-lang/log</summary> ### [`v0.4.19`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0419---2023-06-10) [Compare Source](rust-lang/log@0.4.18...0.4.19) - Use target_has_atomic instead of the old atomic_cas cfg by [@​GuillaumeGomez](https://github.com/GuillaumeGomez) in rust-lang/log#555 - Put MSRV into Cargo.toml by [@​est31](https://github.com/est31) in rust-lang/log#557 ### [`v0.4.18`](https://github.com/rust-lang/log/blob/HEAD/CHANGELOG.md#​0418---2023-05-28) [Compare Source](rust-lang/log@0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://github.com/hellow554) in rust-lang/log#513 - add cargo doc to workflow by [@​hellow554](https://github.com/hellow554) in rust-lang/log#515 - Apply Clippy lints by [@​hellow554](https://github.com/hellow554) in rust-lang/log#516 - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://github.com/glandium) in rust-lang/log#519 - fix up windows targets by [@​KodrAus](https://github.com/KodrAus) in rust-lang/log#528 - typo fix by [@​jiangying000](https://github.com/jiangying000) in rust-lang/log#529 - Remove dependency on cfg_if by [@​EriKWDev](https://github.com/EriKWDev) in rust-lang/log#536 - GitHub Workflows security hardening by [@​sashashura](https://github.com/sashashura) in rust-lang/log#538 - Fix build status badge by [@​atouchet](https://github.com/atouchet) in rust-lang/log#539 - Add call_logger to the documentation by [@​a1ecbr0wn](https://github.com/a1ecbr0wn) in rust-lang/log#547 - Use stable internals for key-value API by [@​KodrAus](https://github.com/KodrAus) in rust-lang/log#550 - Change wording of list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in rust-lang/log#553 - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://github.com/Thomasdezeeuw) in rust-lang/log#554 - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://github.com/djkoloski) in rust-lang/log#544 - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://github.com/OccupyMars2025) in rust-lang/log#561 - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://github.com/OccupyMars2025) in rust-lang/log#562 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDUuNSIsInVwZGF0ZWRJblZlciI6IjM1LjExNS4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1911 Reviewed-by: crapStone <crapstone@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
* Optimization: Rm `debug!` in `find_version` printing all version iterated obviously doesn't help much in debugging in the problem but rather just confusing. Also this makes it hard for the compiler to optimize the iterators. * Use let-else in `ManifestVisitor` * Optimize `BinFile::preview_{bin, link}` for zero-copy Return `impl Display` that lazily format instead of allocating a `String` * Optimize `infer_bin_dir_template`: Generate dir lazily * Optimize `find_version`: Lazily clone `version_req` only on err * Refactor `find_version`: Use `bool::then_some` * Add dep either v1.8.0 to binstalk * Optimize `GhCrateMeta::find`: Avoid cloning and `Vec` creation by using `Either` * Optimize `ops::install::install_from_package`: Make it a regular fn instead of async fn since it does not `.await` on any async fn. * Optimize `QuickInstall`: Rm field `target` since `Arc<Data>` already contains that field. * Optimize `Fetcher`s: Extract new struct `TargetData` so that `Data` can be shared by all fetchers, regardless of the target. * Optimize `QuickInstall`: Rm unused field `data` * Optimize `Resolution::print`: Replace branching with conditional move Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://togithub.com/rust-lang/log) | dependencies | patch | `0.4.17` -> `0.4.20` | --- ### Release Notes <details> <summary>rust-lang/log (log)</summary> ### [`v0.4.20`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0420---2023-07-11) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.19...0.4.20) - Remove rustversion dev-dependency by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/568](https://togithub.com/rust-lang/log/pull/568) - Remove `local_inner_macros` usage by [@​EFanZh](https://togithub.com/EFanZh) in [https://github.com/rust-lang/log/pull/570](https://togithub.com/rust-lang/log/pull/570) ### [`v0.4.19`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0419---2023-06-10) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.18...0.4.19) - Use target_has_atomic instead of the old atomic_cas cfg by [@​GuillaumeGomez](https://togithub.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/555](https://togithub.com/rust-lang/log/pull/555) - Put MSRV into Cargo.toml by [@​est31](https://togithub.com/est31) in [https://github.com/rust-lang/log/pull/557](https://togithub.com/rust-lang/log/pull/557) ### [`v0.4.18`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0418---2023-05-28) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://togithub.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://togithub.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://togithub.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://togithub.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://togithub.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://togithub.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://togithub.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://togithub.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://togithub.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://togithub.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://togithub.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://togithub.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://togithub.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://togithub.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://togithub.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://togithub.com/rust-lang/log/pull/547) - Use stable internals for key-value API by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://togithub.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://togithub.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://togithub.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://togithub.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://togithub.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://togithub.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://togithub.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/fdkevin0/fdkevin-cf-bot). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNi40MC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [log](https://togithub.com/rust-lang/log) | workspace.dependencies | patch | `0.4.17` -> `0.4.20` | --- ### Release Notes <details> <summary>rust-lang/log (log)</summary> ### [`v0.4.20`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0420---2023-07-11) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.19...0.4.20) - Remove rustversion dev-dependency by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/568](https://togithub.com/rust-lang/log/pull/568) - Remove `local_inner_macros` usage by [@​EFanZh](https://togithub.com/EFanZh) in [https://github.com/rust-lang/log/pull/570](https://togithub.com/rust-lang/log/pull/570) ### [`v0.4.19`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0419---2023-06-10) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.18...0.4.19) - Use target_has_atomic instead of the old atomic_cas cfg by [@​GuillaumeGomez](https://togithub.com/GuillaumeGomez) in [https://github.com/rust-lang/log/pull/555](https://togithub.com/rust-lang/log/pull/555) - Put MSRV into Cargo.toml by [@​est31](https://togithub.com/est31) in [https://github.com/rust-lang/log/pull/557](https://togithub.com/rust-lang/log/pull/557) ### [`v0.4.18`](https://togithub.com/rust-lang/log/blob/HEAD/CHANGELOG.md#0418---2023-05-28) [Compare Source](https://togithub.com/rust-lang/log/compare/0.4.17...0.4.18) - fix markdown links (again) by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/513](https://togithub.com/rust-lang/log/pull/513) - add cargo doc to workflow by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/515](https://togithub.com/rust-lang/log/pull/515) - Apply Clippy lints by [@​hellow554](https://togithub.com/hellow554) in [https://github.com/rust-lang/log/pull/516](https://togithub.com/rust-lang/log/pull/516) - Replace ad-hoc eq_ignore_ascii_case with slice::eq_ignore_ascii_case by [@​glandium](https://togithub.com/glandium) in [https://github.com/rust-lang/log/pull/519](https://togithub.com/rust-lang/log/pull/519) - fix up windows targets by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/528](https://togithub.com/rust-lang/log/pull/528) - typo fix by [@​jiangying000](https://togithub.com/jiangying000) in [https://github.com/rust-lang/log/pull/529](https://togithub.com/rust-lang/log/pull/529) - Remove dependency on cfg_if by [@​EriKWDev](https://togithub.com/EriKWDev) in [https://github.com/rust-lang/log/pull/536](https://togithub.com/rust-lang/log/pull/536) - GitHub Workflows security hardening by [@​sashashura](https://togithub.com/sashashura) in [https://github.com/rust-lang/log/pull/538](https://togithub.com/rust-lang/log/pull/538) - Fix build status badge by [@​atouchet](https://togithub.com/atouchet) in [https://github.com/rust-lang/log/pull/539](https://togithub.com/rust-lang/log/pull/539) - Add call_logger to the documentation by [@​a1ecbr0wn](https://togithub.com/a1ecbr0wn) in [https://github.com/rust-lang/log/pull/547](https://togithub.com/rust-lang/log/pull/547) - Use stable internals for key-value API by [@​KodrAus](https://togithub.com/KodrAus) in [https://github.com/rust-lang/log/pull/550](https://togithub.com/rust-lang/log/pull/550) - Change wording of list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/553](https://togithub.com/rust-lang/log/pull/553) - Add std-logger to list of implementations by [@​Thomasdezeeuw](https://togithub.com/Thomasdezeeuw) in [https://github.com/rust-lang/log/pull/554](https://togithub.com/rust-lang/log/pull/554) - Add `set_max_level_racy` and gate `set_max_level` by [@​djkoloski](https://togithub.com/djkoloski) in [https://github.com/rust-lang/log/pull/544](https://togithub.com/rust-lang/log/pull/544) - \[doc] src/lib.rs : prefix an unused variable with an underscore by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/561](https://togithub.com/rust-lang/log/pull/561) - \[doc] src/macros.rs : correct grammar errors of an example in lib documentation by [@​OccupyMars2025](https://togithub.com/OccupyMars2025) in [https://github.com/rust-lang/log/pull/562](https://togithub.com/rust-lang/log/pull/562) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/sammyfilly/Nextjs).
Calling
set_max_level
can result in a race condition on platforms that don't have an atomic compare and swap implementation. This gatesset_max_level
behind#[cfg(atomic_cas)]
and adds a racy alternative that can be called in these situations. This mirrors the approach forset_logger
.Fixes #534