Size: a a a

Clojure — русскоговорящее сообщество

2019 July 22

A

Alex in Clojure — русскоговорящее сообщество
тоже интересно где атом не так сработал )
источник

A

Alex in Clojure — русскоговорящее сообщество
как ожидалось
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
как минимум, в моём случае у меня было нежелательное «because the function might be called multiple times»
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
мне нужно было звать строго один раз, так как условие «must be free of side effects» не выполнялось
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Sergey Trofimov
нет
если у вас всё работает, то и хорошо
но для проверки, что всё работает, я рекомендую явно запускать несколько конкурирующих тредов, чтобы они потолкались
так уж получилось, что мы не умеем формальную верификацию. а эти "запускатьт несколько тредов" не нужны в простых случаях, а в сложные сами по себе являются достаточно сложной задачей (смотри например https://github.com/jepsen-io/jepsen, это именно что попытка эмпирически находить ошибки в параллельных системах)

Так или иначе пока что лучшим инструментом написания корректных параллельных алгоритмов является мозг автора.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Sergey Trofimov
мне нужно было звать строго один раз, так как условие «must be free of side effects» не выполнялось
ну вот это называется "баг", а не что-то с атомами не так.
источник

A

Alex in Clojure — русскоговорящее сообщество
Sergey Trofimov
мне нужно было звать строго один раз, так как условие «must be free of side effects» не выполнялось
ok
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Andrew Rudenko
ну вот это называется "баг", а не что-то с атомами не так.
это не баг, а условия задачи
мне нужно было в мапу вставить future, которая долго выполняется
в конкурентных условиях у меня генерилось несколько future
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
старая рубрика "научим тебя жить"
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
это классический баг ) функции в атоме должны обладать конкретными свойствами, ты их не соблюдал, словил некорректное поведение.
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
Это называется баг. Если в описании swap! написано, что он принимает только функции без побочных эффектов, то запихивание туда функции с побочными эффектами - это баг.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Ivan Grishaev
старая рубрика "научим тебя жить"
программировать, ок?
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
@prepor Про глобальный стейт - в жизни этот атом будет жить внутри состояния соединения, конечно.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
не ок, человек упомянул проблемы былых дней, ты его учишь, хотя никто не просил
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Mikhail Gusarov
@prepor Про глобальный стейт - в жизни этот атом будет жить внутри состояния соединения, конечно.
ну можно ж сразу и написать в том виде, в котором он предполагает быть, а то так не очень понятно какие именно части стоит "оценивать". а какие будут воправлены, благо и кода то не много )
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
@igrishaev Ментальная картина "атомы не заработали в качестве строгого средства синхронизации изменений ресурса в многопоточной среде" сохранилась до нынешнего времени.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Ivan Grishaev
не ок, человек упомянул проблемы былых дней, ты его учишь, хотя никто не просил
меня в очередной раз забавляет как главный противних "учителей" в чатике учит, при том совершенно офтопик )
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
я не знаю, являются ли peek/pop в https://gist.github.com/dottedmag/f38b25718cb151b81ed429312092546b сайд эффектами
поэтому и сказал, что нужно проверять, а не верить в атомы
источник

A

Artem in Clojure — русскоговорящее сообщество
Ivan Grishaev
не ок, человек упомянул проблемы былых дней, ты его учишь, хотя никто не просил
1. Всю жизнь придется учиться
2. Канал от части для обучения
3. Препор не плохо подходит на роль эксперта
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
в чате было совершенно невалидное техническое замечание, было указано, что оно технически некорректно и предложено посмотреть код. все
источник