Mutex without lock, Queue without push: cancel safety in lilos
2023-07-10I’m trying to do something kind of unusual with lilos
: in addition to almost
all the APIs being safe-in-the-Rust sense, I’m also attempting to create an
entire system API that is cancel-safe. I’ve written a lot about Rust’s async
feature and its notion of cancellation recently, such as my suggestion for
reframing how we think about async
/await
.
My thoughts on this actually stem from my early work on lilos
, where I started
beating the drum of cancel-safety back in 2020. My notion
of what it means to be cancel-safe has gotten more nuanced since then, and I’ve
recently made the latest batch of changes to try to help applications built on
lilos
be more robust by default.
So, wanna nerd out about async
API design and robustness? I know you do.