# Data race error

A *data race* is similar to a race condition and happens when:

* Two or more pointers access the same data at the same time.
* At least one of the pointers is being used to write to the data.
* There's no synchronization mechanism to protect the data.

*Data races* cause undefined behavior and are hard to debug.

Rust prevents *data races* by allowing only a single mutable reference of a value per scope.

:programming:
