implement memory pool using LL/SC operations #285
Closed
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 changes the implementation of the underlying Treiber Stack to use LDREX and STREX on
Cortex-v7A/R/M. other architectures are left unchanged in this PR. in principle, RISC-V could be
implemented in a similar fashion but haven't tested that yet
this does bump the MSRV so it's technically a breaking change ...
to make this easier to maintain I'd like to drop the llsc.rs and make pool only available on targets
where it implements Sync and it's sound but that's a API breaking change. there are other API
breaking changes I'd like to make (e.g. remove the Uninit type state) so I'll write a RFC first
fixes #180