Re[35]: Безопасность Rust
От: vdimas Россия  
Дата: 03.06.19 09:49
Оценка:
Здравствуйте, ·, Вы писали:

V>>Это всего-лишь артефакт дополнительного требования для сериализации доступа.

V>>Для слабых требований mfence не нужен.
V>>А сильные модели содержат куда как больше вариантов, чем один mfence из x86/x86_x64.
·>Какие модели?

Модели, скажем так, "степени когерентности памяти" абстрактной машины исполнения С++ программы.

Разные алгоритмы накладывают разные требования, эти требования были перечислены явно:
https://ru.cppreference.com/w/cpp/atomic/memory_order

Пример по ссылке:

memory_order_relaxed
Ослабленное(Relaxed) упорядочение: отсутствуют ограничения синхронизации и упорядочения, для данной операции требуется только атомарность.
...
Ослабленное упорядочение
Атомарные операции, отмеченные как std::memory_order_relaxed, не являются синхронизирующими операциями, они не упорядочивают память. Они гарантируют только атомарность и согласованность порядка модификации.


Теперь см. выделенное в моём процитированном.


·>Это просто один из вариантов реализации (особенность gcc). Второй — xchg.


Ты пока не понимаешь, о чём споришь.
Путаешь разные понятия.


V>>Курить, что есть атомарность.

·>Так кури:
·>

Во втором случае используются специальные программные средства синхронизации, с помощью которых осуществляется блокировка разделяемого ресурса; после блокировки выполняется операция, которую требуется выполнить атомарно


Отож, второй случай.
Но ты спорил и продолжаешь спорить с первым.
Отредактировано 03.06.2019 9:50 vdimas . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.