Skip to content

Conversation

@japaric
Copy link
Member

@japaric japaric commented May 3, 2022

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

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
@japaric japaric added this to the v0.8.0 milestone May 10, 2022
@japaric
Copy link
Member Author

japaric commented Sep 23, 2022

closing in favor of #315

@japaric japaric closed this Sep 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The llsc stack is not safe from ABA with how LL/SC is used

1 participant