Size: a a a

2021 April 25

Dv

Dr. Friedrich von Ne... in codingteam
Наверное!
источник

t

ttldtor in codingteam
b-word 37
источник

O

Omap in codingteam
вы оба никогда не смеялись?
источник

c

codingteam@cjr in codingteam
Minoru
ух, кажется я и в барьеры наконец-то въехал!
источник

c

codingteam@cjr in codingteam
Minoru
ну, или в заборы эти, пофигу
источник

c

codingteam@cjr in codingteam
Minoru
https://arxiv.org/pdf/1803.04432.pdf норм статья про модель памяти в плюсах
источник

c

codingteam@cjr in codingteam
Minoru
гм, кстати, авторы из Австрии. Это что, единственный регион в мире, где кто-то шарит эту байду?
источник

O

Omap in codingteam
го пересказывать про барьеры так, что бы я понял
источник

t

ttldtor in codingteam
модель памяти же из Java взяли
источник

O

Omap in codingteam
если не сможешь - значит не въехал
источник

c

codingteam@cjr in codingteam
Minoru
@ttldtor: прям дословно? По-моему, нет. В том пейпере Бёма, что я упоминал, было написано, что для слабо типизированного языка вроде плюсов нет смысла так сильно загоняться с happens-before
источник

c

codingteam@cjr in codingteam
Minoru
но в итоге в Стандарте это есть, так что не знаю. Может, Коммитет его уговорил передумать
источник

c

codingteam@cjr in codingteam
Minoru
@noktoborus: ну, давай. Как ты знаешь, и компилятор, и железо могут как угодно переставлять местами чтение и запись переменных, это не меняет наблюдаемое поведение программы
источник

c

codingteam@cjr in codingteam
Minoru
программистам это мешает строить примитивы синхронизации вроде мьютексов и прочего, потому что по определению, примитив должен залочиться до того, как будут прочитаны/записаны защищаемые им данные
источник

t

ttldtor in codingteam
ну нет, но про хэперс бефо тоже есть https://en.wikipedia.org/wiki/Java_memory_model
источник

c

codingteam@cjr in codingteam
Minoru
а если железо как попало переставляет чтения/записи, то в итоге оно может переставить чтение/запись данных *до* лока. И лок станет бесполезным!
источник

c

codingteam@cjr in codingteam
Minoru
чтобы справиться с этой проблемой, в железе есть инструкции-барьеры, подсказывающие железу, что переставлять можно, а что нет
источник

t

ttldtor in codingteam
источник

t

ttldtor in codingteam
22 страница
источник

c

codingteam@cjr in codingteam
Minoru
конкретно, есть три вида барьеров: acquire, release, sequentially consistent acquire and release
источник