Add portable-atomic
support to tracing-core
#3199
Open
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.
Motivation
Solution
portable-atomic-util
as an optional dependency gated behind a new feature,portable-atomic
totracing-core
portable-atomic
is enabled, switched uses ofArc
andWeak
away fromalloc::sync
toportable_atomic_util
.Notes
I'm currently working on
no_std
support for the Bevy Game Engine, which includes targeting embedded devices without full native support for atomics, such as the RP2040 Raspberry Pi Pico. Usingportable-atomic
, users can provide a fallback implementation for atomics to libraries (typically throughcritical-section
), allowing libraries to depend on atomics even on unsupported platforms. This PR would allow usingtracing
on more platforms without sacrificing ergonomics or performance on existing ones.This is my first time contributing to
tracing
, so please reach out if there's anything I can do to help with reviewing and merging this change!