Re[54]: Безопасность Rust
От: alex_public  
Дата: 05.06.19 17:01
Оценка:
Здравствуйте, Sinclair, Вы писали:

_>>Надо пояснять для чего они служат, и что с ними сделает даже самый простенький оптимизатор? )

S>Ок, про отображение портов — согласен. Но это не имеет отношения к многозадачности/многопоточности. Разве что в самом широком смысле, который рискует порвать сову глобусом

А я нигде и не говорил о многозадачности/многопоточности. Я говорил о важности модификатора volatile для низкоуровневого программирования.

S>Про перебор i в цикле я примера увы, не понял. С учётом того, что i у нас никуда не отображена, мы крутим регистр процессора.

S>Скорее всего, речь идёт о трудноуловимой баге — программист пытается выполнить задержку ненадёжным способом.

Да, это именно задержка. И вполне себе надёжная. Т.е. понятно что аппаратный таймер лучше, но не во всех случаях его можно применить.

S>Скажем, если бы речь шла о спинлоке, то там внутри цикла должны были бы стоять не volatile, а fences — чтобы упорядочить чтения с записями из других потоков/ядер.


Для полноценного спинлока тебе не хватит ни volatile, ни fences. Для него необходимы уже атомарные операции типа CAS или аналоги, поддерживаемые процессором.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.