Crate lilos_list

source ·
Expand description

A no-allocation wait-list and associated utility code.

This crates provides a doubly-linked intrusive list for tracking timers or wait queues without using dynamic memory allocation. To achieve a safe Rust API, the interface is a bit unusual.

See the List type for details.

This list is used internally by lilos but may also be useful for applications or crates implementing new synchronization primitives. Because lilos’s internal use of this list is not exposed, it’s not important to use exactly the same version, except to conserve flash space.


  • A list that records concurrent processes waiting for events of some sort.
  • A wrapper type for including some arbitrary metadata M in a List.
  • Combines an ordering type T with an arbitrary metadata type M for use in a List.


  • Marker trait implementing the “Captures Trick” from Rust RFC 3498, ensuring that we do lifetime capturing right in the 2021 edition.