Concurrency and Async Practices in Real-World Rust
How are lock-free and atomic-based concurrency techniques used in Rust crates?
D. Potskhishvili (TU Delft - Electrical Engineering, Mathematics and Computer Science)
M.A. Costea – Mentor (TU Delft - Electrical Engineering, Mathematics and Computer Science)
R.W. Backx – Mentor (TU Delft - Electrical Engineering, Mathematics and Computer Science)
P. Pawelczak – Graduation committee member (TU Delft - Electrical Engineering, Mathematics and Computer Science)
More Info
expand_more
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Abstract
Rust provides strong safety guarantees and supports several forms of concurrency, including atomic-based techniques. In this paper, we study how such techniques are used in crates that provide and use atomic-based functionality. We observed that these techniques mainly support communication between threads, shared access to data, and coordination of work. We also observed that they appear at different abstraction levels, from low-level memory management to higher-level data structures. These results help explain how atomic-based concurrency is used in real-world Rust code.