ax-sync 0.5.32

ArceOS synchronization primitives
Documentation

ax-sync

OS-independent synchronization interfaces for TGOSKits kernels and reusable components.

Primitives

  • SpinLock<T> and SpinRwLock<T> select execution-context policy at each acquisition: ordinary methods disable preemption, *_irqsave methods also save and disable local interrupts, and unsafe *_raw methods leave context management to the caller.
  • Mutex<T> is always a non-poisoning sleepable mutex. It is available only with the sleep feature and never aliases a spin lock.
  • PreemptGuard, IrqSaveGuard, and PreemptIrqSaveGuard provide explicit critical-section guards.
  • With lockdep, all lock types share lock-class, held-lock, ordering, and diagnostic support.

The crate declares runtime capabilities through ax-crate-interface. ArceOS implements the production providers in ax-runtime; host tests use the host-test providers in this crate.

Features

  • smp: enable atomic multi-CPU exclusion.
  • sleep: enable the sleepable mutex interface.
  • lockdep: enable held-lock and ordering diagnostics.
  • lock-api: enable the IRQ-save raw mutex adapter required by lock_api.
  • host-test: use the deterministic host-side engine on non-bare-metal targets.
  • axtest: expose bare-metal coverage tests.

License

This project is licensed under GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0.