Fearless Concurrency? Understanding Concurrent Programming Safety in Real-World Rust Software
Rust is a popular programming language in building various low-level software in recent years. It aims to provide safe concurrency when implementing multi-threaded software through a suite of compiler checking rules. Unfortunately, there is limited understanding of how the checking rules influence the safety of concurrent programming in Rust applications. In this paper, we perform a preliminary study on Rust's concurrency safety from two aspects: concurrency usage and concurrency bugs. Our study can provide better understanding on Rust's concurrency and can guide future researchers and practitioners in writing better, more reliable Rust software and in developing debugging and bug detection tools for Rust.
READ FULL TEXT