Size: a a a

2020 October 07

LL

Lama Lover in pro.elixir
О, классный звук
И качество
источник

МБ

Максим Барулин... in pro.elixir
Я старался 😊
источник

PG

Pig Greenest in pro.elixir
только кляузы немного режут ухо
источник

МБ

Максим Барулин... in pro.elixir
Pig Greenest
только кляузы немного режут ухо
Согласен, привык так говорить, не придумал чем заменить
источник

PG

Pig Greenest in pro.elixir
клоз, клоза
источник

IK

Ihor Katkov in pro.elixir
Максим Барулин
Согласен, привык так говорить, не придумал чем заменить
Замыкание?
источник

PG

Pig Greenest in pro.elixir
нет, замыкание это closure, а здесь речь про clause
источник
2020 October 08

ev

eugene vikulov in pro.elixir
Добрый день. Скажите пожалуйста, я правильно понимаю, что при вызове call(gs2, ...) из gs1, а уже оттуда вызов call(gs1, ..) до отправки ответа gs1 заблокирует оба genServer'а?
источник

LL

Lama Lover in pro.elixir
eugene vikulov
Добрый день. Скажите пожалуйста, я правильно понимаю, что при вызове call(gs2, ...) из gs1, а уже оттуда вызов call(gs1, ..) до отправки ответа gs1 заблокирует оба genServer'а?
Да, но рано или поздно кто-то из них отвалится с таймаутом
источник

ev

eugene vikulov in pro.elixir
Понял, спасибо. Буду думать дальше
источник

LL

Lama Lover in pro.elixir
eugene vikulov
Понял, спасибо. Буду думать дальше
Над чем? Решение такого дедлока полностью зависит от задачи.
Если нужно делать два call-а, то это может, например, значить что второму процессу нужно что-то из стейта первого. Почему бы первому процессу не передавать это в call-е ко второму?
источник

ev

eugene vikulov in pro.elixir
Lama Lover
Над чем? Решение такого дедлока полностью зависит от задачи.
Если нужно делать два call-а, то это может, например, значить что второму процессу нужно что-то из стейта первого. Почему бы первому процессу не передавать это в call-е ко второму?
Задача такая. Есть GS который работает с tcp-сокетом и принимает из сети команды и отправляет их другим GS'ам. Может прийти команда о регистрации коннекта, который имеет ряд атрибутов и по спецификации его должен создавать ConnectionManager так же оформленный в виде gs. Проблема в том, как передать эти атрибуты соединения в сервер работающий с сокетом. Иногда к нему приходят команды которые требуют знания о открытых коннектах. Как вы сказали выше, прямой call из connectionManager'а до ответа заблокирует оба процесса. Если сразу после ответа сделать call то нет уверенности, что процесс работающий с сокетом не получит это сообщение раньше вызова из сети который уже нуждается в аттрибутах соединения. Как-то так
источник

ev

eugene vikulov in pro.elixir
Разумеется можно сразу прислать "композитный" ответ и для клиента в сети и для tcp-процесса, но это будет выглядеть не эстетично что-ли
источник

LL

Lama Lover in pro.elixir
eugene vikulov
Разумеется можно сразу прислать "композитный" ответ и для клиента в сети и для tcp-процесса, но это будет выглядеть не эстетично что-ли
А почему, собственно говоря, ConnectionManager не может в reply сказать что должна произойти регистрация коннекта?
источник

ev

eugene vikulov in pro.elixir
Lama Lover
А почему, собственно говоря, ConnectionManager не может в reply сказать что должна произойти регистрация коннекта?
Может. Я не спорю. Но придётся обрамлять кодом вызов который в 99.99%  в этом коде не нуждается
источник

ev

eugene vikulov in pro.elixir
Так стоп. А если я из connectionManager'а сделаю cast до ответа, это ведь не заблокирует процессы?
источник

ev

eugene vikulov in pro.elixir
Это же асинхронный вызов
источник

ev

eugene vikulov in pro.elixir
И это сообщение в очереди появится гарантированно раньше любого сообщения из сети которому требуются эти атрибуты соединия. Правильно у меня пазл в голове сложился?
источник

LL

Lama Lover in pro.elixir
eugene vikulov
Так стоп. А если я из connectionManager'а сделаю cast до ответа, это ведь не заблокирует процессы?
Так, а что вернёт reply ?
И чем это лучше чем вернуть в reply ?
источник

LL

Lama Lover in pro.elixir
eugene vikulov
И это сообщение в очереди появится гарантированно раньше любого сообщения из сети которому требуются эти атрибуты соединия. Правильно у меня пазл в голове сложился?
cast это ещё одно сообщение
При этом, оно не будет обработано раньше, чем произойдёт reply
источник