Jorge Aparicio e44909d694 implement memory pool using LL/SC operations
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
2022-05-03 14:24:17 +02:00
2021-04-27 19:03:12 +02:00
2022-04-29 15:29:15 +02:00
2022-04-29 12:42:52 -04:00
2017-03-05 00:30:10 -05:00
2017-03-05 00:30:10 -05:00
2020-05-09 19:46:06 +03:00

crates.io crates.io

heapless

static friendly data structures that don't require dynamic memory allocation

Documentation

Change log

Tests

# run all
cargo test --features 'serde','x86-sync-pool'
# run only for example histbuf tests
cargo test histbuf --features 'serde','x86-sync-pool'

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Description
Heapless, static friendly data structures
Readme 18 MiB
Languages
Rust 100%