lilos-list 0.1.0

Allocation-free intrusive doubly-linked wait queues for lilos.
Documentation
  • Coverage
  • 100%
    13 out of 13 items documented0 out of 12 items with examples
  • Size
  • Source code size: 34.27 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 389.64 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 11s Average build duration of successful builds.
  • all releases: 11s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • cbiffle/lilos
    834 46 6
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • cbiffle

Allocation-free doubly-linked intrusive lists

This is the list type used to implement timer lists and wait queues in lilos. It takes an unusual approach to implementing a sound doubly-linked intrusive list in Rust without allocation, which is otherwise quite difficult: it presents a different API that's easier to make sound.

This data structure can be built for any platform, and has tests that can run both hosted and under Miri (to check for pointer abuses).

See the rustdoc for more details.

Versioning

It's not important for applications or custom synchronization primitives to use exactly the same version of lilos-list as lilos does internally. Having multiple versions linked into a single binary will work fine. (However, it will take somewhat less space in flash if you can arrange to use the same version.)

lilos-list is versioned separately from the OS API and will likely go through major versions faster than the rest of the OS.