Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Some commenters mention Rust has compile-time data-race checking. Is this correct? From what I did understand it will only enforce a mutex to be locked before you can access specific data. However if there is no mutex, data-races won't be detected at compile time?


It is correct. Rust prevents all data races at compile time, unless you write incorrect unsafe code. This is why people try to write as little unsafe as possible. This has nothing to do with Mutexes; mutexes are provided by the standard library and the language knows nothing specific about them.


I understand. It is actually kind of easy to comprehend by remembering the borrow checker will only allow one single mutable reference at a time.


Rust compiler forbids multiple threads to access the same memory location not protected by a Mutex.


That is, only when said memory location is accessed mutably. Immutable references are perfectly ok to follow concurrently.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: