26 Commits

Author SHA1 Message Date
Alex Martens
6e98625a8b Fix CI 2024-05-06 18:43:35 -07:00
Dario Nieuwenhuis
f58e509664 Simplify atomic availability detection.
- `cfg(target_has_atomic)` is stable now, use that.
- Hardcode in `build.rs` the list of targets with load/store but no CAS,
  since `cfg(target_has_atomic_load_store)` is not stable yet.
- Do not try to autodetect whether `portable-atomic` is needed or not,
  just let the user control it directly. If the user doesn't explicitly
  enable `portable-atomic` and native atomics are unavailable, the
  features requiring it will be missing.
2023-10-31 00:02:03 +01:00
Dario Nieuwenhuis
8f6dc813d6 Use portable-atomic instead of atomic-polyfill. 2023-10-30 22:00:34 +01:00
Richard Berry
8cdd497fa5 Fix pool (mis)compile on AArch64
The LLSC probe in `build.rs` checks for the presence of the
`clrex` instruction and assumes the target also has both `ldrex`
and `strex`.

In AArch64 `clrex` is a known mnemonic but `ldrex` and `strex`
are not. This caused the `arm_llsc` feature (and subsequently the
oiik module) to be included in the crate for AArc64 which is invalid.
2023-10-21 08:26:53 +09:00
Dario Nieuwenhuis
24bfda59cb thread scopes are stable now. 2023-10-21 00:00:21 +02:00
Flole998
02935035b1 Add polyfills for ESP32S2 2023-01-23 14:34:40 +00:00
Jorge Aparicio
fb3f34c04a revamp pool API 2022-10-18 11:43:50 +02:00
Jorge Aparicio
309f150ca0 v0.6.14 2022-06-15 15:11:11 +02:00
Robert Forsman
c8e6dcc3da act on japaric's requests using techniques from Rahix to more generically support AVR 2022-06-14 13:47:05 -04:00
Robert Forsman
2150effc73 it seems that I do not need to emit cargo:rustc-cfg=has_atomics for avr-atmega* 2022-06-03 12:32:23 -04:00
Robert Forsman
3b9b9f7548 Merge remote-tracking branch 'upstream/master' 2022-05-28 18:38:23 -04:00
Jorge Aparicio
3d3277f6d3 only build tests that require thread::scope on nightly 2022-04-29 15:21:58 +02:00
Robert Forsman
75f330caa2 add support for the Arduino Mega 2560 board 2022-03-29 17:20:45 -04:00
Robert Forsman
d890acbef2 first draft at support for AVR/Arduino 2022-03-22 17:27:45 -04:00
Tyler Holmes
bc9e208089 differentiate full vs CAS polyfill 2022-01-17 11:32:13 -08:00
Tyler Holmes
63c0370d69 add riscv cas atomic support and cleanup the #cfg's for it 2022-01-17 11:31:40 -08:00
Emil Fresk
2c248a31e9 Fixed so pool and MPMC works on thumbv6 2021-04-04 13:18:49 +02:00
Richard Berry
8bcf9d8970 Extend ARMv7-R Pool support to the bare-metal armebv7r- targets 2020-04-30 20:13:18 +01:00
Jorge Aparicio
7de6f7907d Extend the ARMv7-A Pool support to the bare-metal armv7a- targets.
The built-in rustc targets ended with names that start with `armv7a-` so #140
does not cover them though the intention was to support them; this commit fixes
that
2020-01-27 12:08:15 +01:00
Jorge Aparicio
646c56545d extend singleton pool! support to ARMv7-A 2020-01-15 11:47:55 +01:00
Jorge Aparicio
44c66a7484 remove spsc / pool / mpmc modules on targets w/o atomic / CAS support
closes #123
2019-12-18 12:01:53 +01:00
Emil Fresk
14cef0fbc3 Added distinction between armv8 base and main 2019-08-11 18:45:41 +02:00
Emil Fresk
24ffc4a399 Added armv8 support 2019-08-11 18:18:00 +02:00
Felix Stegmaier
2768707946 Fix boxed Error in build.rs for nightly 2019-06-01 10:19:30 +02:00
Jorge Aparicio
110239f0c1 ARMv7-R: implement Sync for Pool 2019-05-03 18:43:46 +02:00
Jorge Aparicio
ef399ab44f add lock-free, interrupt-safe memory pool
this adds the stable subset of the `lifo::Pool` [1] API

[1]: https://github.com/japaric/lifo
2019-04-22 20:49:34 +02:00