Formalize and prove fairness for Tokio’s multi-threaded runtime

Extend the formalization of Tokio’s current-thread runtime to Tokio’s multi-threaded runtime and prove fairness for the multi-threaded scheduler, including the effects of multiple workers, task stealing, parallel execution, and the resulting nondeterminism.

Background

The paper formalizes and proves fairness for Tokio’s single-worker current-thread runtime, but does not formalize the multi-threaded runtime. The multi-threaded version requires additional composition rules for multiple workers and local queues, as well as a model of task stealing, whose concrete algorithm is described only conceptually in the available documentation and code analysis.

A fairness proof would additionally need to account for parallel execution, worker starvation, and scheduler nondeterminism. The conclusion reiterates this as a future research direction and notes that proving fairness may require additional proof methods or a more complex argument.

References

The present paper is focussed on the current thread runtime and we omit a formalization and fairness proof of the multi-tread runtime. While the multi-thread runtime is more widely used, we leave it for future work.

— A Complete, Formal Semantics for Rust Source Code  (2610.06003 - Drodt, 5 Oct 2026) in Section 5.6, “A Comment on the Multi-Thread Runtime”; also Section 8, “Future Work”