что &mut гарантирует уникальный доступ -> гонки быть не может. Но если ли гарантия что все предыдущие сторы подействуют?
В коде просто каст указателя, я запутался...
компилятор реордерить это точно не будет, синхронизация важна между потоками, а в пределах одного потока все будет выполняться сверху-вниз, как говорится atomic.store(true, Relaxed) sequenced-before *atomic.get_mut() все ок, можно не париться
А если это в разных потоках происходит, то париться не надо потому что между потоками нужна явная синхронизация? Окей..
ну вопрос был конкретно про .get_mut, разве нет?
Там в доке написано "This is safe because the mutable reference guarantees that no other threads are concurrently accessing the atomic data."
Так я могу в начале расшерить &Atomic, а потом дождаться завершения потоков
Это только говорит что гонки не будет
у тебя основной ждет завершения потоков, потоки завершают работу (пишут true в атомик), и ПОСЛЕДОВАТЕЛЬНО выполняется .get_mut
Обсуждают сегодня