надо проверять, будет ли atom работать как ожидается при конкурентных запросах на аллокацию ресурса так как a) фукция в swap! может выполниться более одного раза b) что-то ещё, но не смог сформулировать
на моей практике атомы не заработали в качестве строгого средства синхронизации изменений ресурса в многопоточной среде
надо проверять, будет ли atom работать как ожидается при конкурентных запросах на аллокацию ресурса так как a) фукция в swap! может выполниться более одного раза b) что-то ещё, но не смог сформулировать
на моей практике атомы не заработали в качестве строгого средства синхронизации изменений ресурса в многопоточной среде
так что я бы тестировал такое аккуратно
хм, да это же полностью конфликтует с тем, зачем они11010101 (в теории)
не полностью но https://clojure.org/reference/atoms «Since another thread may have changed the value in the intervening time, it may have to retry, and does so in a spin loop. The net effect is that the value will always be the result of the application of the supplied function to a current value, atomically. However, because the function might be called multiple times, it must be free of side effects.»
и «Atoms are an efficient way to represent some state that will never need to be coordinated with any other, and for which you wish to make synchronous changes»
@strofimov1972 Можно представить, что это внутри стейта соединения.
можно представить всё, что угодно я просто предупредил, что атом для синхронизации нужно проверять, работает ли он так, как думает программист я вот думал одно, а по факту получилось то, что получилось
ну это у тебя не получилось, можешь показать код и мы тут попытаемся понять почему
нет если у вас всё работает, то и хорошо но для проверки, что всё работает, я рекомендую явно запускать несколько конкурирующих тредов, чтобы они потолкались
нет если у вас всё работает, то и хорошо но для проверки, что всё работает, я рекомендую явно запускать несколько конкурирующих тредов, чтобы они потолкались