Несталі статичні змінні
Читати незмінну статичну змінну безпечно:
Однак, оскільки можуть відбуватися перегони даних, небезпечно читати і записувати статичні змінні, що мутуються:
Speaker Notes
This slide should take about 5 minutes.
-
Програма тут безпечна, оскільки вона однопотокова. Однак компілятор Rust є консервативним і припускає найгірше. Спробуйте видалити
unsafe
і подивіться, як компілятор пояснює, що мутація статики з кількох потоків є невизначеною поведінкою. -
Використання мутабельної статики, як правило, погана ідея, але є деякі випадки, коли це може мати сенс у низькорівневому коді
no_std
, наприклад реалізація розподілювача купи або робота з деякими API C.