Skip to content

Conversation

@okhsunrog
Copy link

The critical-section coordination module (cs.rs) was using core::sync::atomic types directly, which don't work on targets like riscv32imc (ESP32-C3) that lack native atomic support.

This change:

  • Uses portable-atomic for AtomicBool and AtomicUsize in cs.rs
  • Adds portable-atomic as an optional dependency enabled by the critical-section feature
  • Removes maitake-sync?/critical-section propagation since cs.rs doesn't need it, and it enables portable-atomic/critical-section which conflicts with esp-hal's unsafe-assume-single-core cfg

This allows bbqueue to work on ESP32 chips where esp-hal configures portable-atomic with unsafe-assume-single-core for atomic operations.

The critical-section coordination module (cs.rs) was using
core::sync::atomic types directly, which don't work on targets
like riscv32imc (ESP32-C3) that lack native atomic support.

This change:
- Uses portable-atomic for AtomicBool and AtomicUsize in cs.rs
- Adds portable-atomic as an optional dependency enabled by
  the critical-section feature
- Removes maitake-sync?/critical-section propagation since cs.rs
  doesn't need it, and it enables portable-atomic/critical-section
  which conflicts with esp-hal's unsafe-assume-single-core cfg

This allows bbqueue to work on ESP32 chips where esp-hal configures
portable-atomic with unsafe-assume-single-core for atomic operations.
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.

1 participant