Size: a a a

2019 October 28

AB

Alexander Bogosyan in ErlangRus
Petr Kozorezov
В гардах?
В гардах никак, просто сделать ещё один вызов типа handle_timeout() -> handle_timeout(role(State),...)
источник

AB

Alexander Bogosyan in ErlangRus
В целом сложный вопрос насчёт макросов, оно часто переходит границы и начинают макросить логику целиком :(
источник

В

Вертолетчик in ErlangRus
Sergey Prokhorov
я лично стараюсь макросы по минимуму использовать; но у нас в команде многие любят делать что-то в таком стиле чтоб не опечататься в имени ключа
именно по этой причине и сделал этот трэш )))

https://github.com/DOBRO/binbo/blob/master/src/binbo_position.erl#L309
источник

PK

Petr Kozorezov in ErlangRus
Alexander Bogosyan
В гардах никак, просто сделать ещё один вызов типа handle_timeout() -> handle_timeout(role(State),...)
Ну так идея в том, чтобы сделать компактно и лаконично. Имхо через функции так не получится. А с макросами получилось.
источник

AB

Alexander Bogosyan in ErlangRus
Petr Kozorezov
Ну так идея в том, чтобы сделать компактно и лаконично. Имхо через функции так не получится. А с макросами получилось.
Ну, может быть
источник

СИ

Сергей Иванов in ErlangRus
прятать имена атрибутов в map идея понятная, но прям такой хардкор в стиле сишечки
источник
2019 October 29

В

Вертолетчик in ErlangRus
А кто-нибудь (не обязательно из этой группы) заморачивался над PR в OTP по поводу селективных сообщений в/из портов?
Ну то есть, чтоб послать команду в порт с кастомным тегом и получить ответ с таким же тегом.
Наример:
port_command(Port, Data, my_tag)

А в ответ получаем что-то вроде:
{Port, {data, Data}, my_tag}
источник

СИ

Сергей Иванов in ErlangRus
Вертолетчик
А кто-нибудь (не обязательно из этой группы) заморачивался над PR в OTP по поводу селективных сообщений в/из портов?
Ну то есть, чтоб послать команду в порт с кастомным тегом и получить ответ с таким же тегом.
Наример:
port_command(Port, Data, my_tag)

А в ответ получаем что-то вроде:
{Port, {data, Data}, my_tag}
я отправлю payload  в порт из порта, но поддерживаю это самостоятельно разумеется (т.е на стороне erlang и порта)
источник

СИ

Сергей Иванов in ErlangRus
Вертолетчик
А кто-нибудь (не обязательно из этой группы) заморачивался над PR в OTP по поводу селективных сообщений в/из портов?
Ну то есть, чтоб послать команду в порт с кастомным тегом и получить ответ с таким же тегом.
Наример:
port_command(Port, Data, my_tag)

А в ответ получаем что-то вроде:
{Port, {data, Data}, my_tag}
если ты хочешь именно системную очередь сообщений использовать для матчинга, то надо переделывать драйвер или обертку делать  .
а вообще не понятна суть вопроса
источник

В

Вертолетчик in ErlangRus
Сергей Иванов
если ты хочешь именно системную очередь сообщений использовать для матчинга, то надо переделывать драйвер или обертку делать  .
а вообще не понятна суть вопроса
Дело в том, что внешняя прога сторонняя, переделать нельзя. На одну полученную команду может выслать штук 10 строк (сообщений) в порт. Если команд несколько, то потом пойди разбери, на какую ответ пришел.
Приходится костылить
источник

c🦊

cleverfox 🦊 in ErlangRus
Вертолетчик
Дело в том, что внешняя прога сторонняя, переделать нельзя. На одну полученную команду может выслать штук 10 строк (сообщений) в порт. Если команд несколько, то потом пойди разбери, на какую ответ пришел.
Приходится костылить
сделай у себя внутри gen_server, например, для сбора сообщений и их сортировки
источник

c🦊

cleverfox 🦊 in ErlangRus
selective receive это вредно. Этим можно пользоваться только если ты точно знаешь что делаешь
источник

В

Вертолетчик in ErlangRus
cleverfox 🦊
сделай у себя внутри gen_server, например, для сбора сообщений и их сортировки
ген сервером их и собираю
источник

c🦊

cleverfox 🦊 in ErlangRus
ты должен понимать что при selective receive ты регулярно должен будешь выгребать все сообщения тоже
источник

В

Вертолетчик in ErlangRus
cleverfox 🦊
selective receive это вредно. Этим можно пользоваться только если ты точно знаешь что делаешь
Знаю абсолютно точно
источник

c🦊

cleverfox 🦊 in ErlangRus
Вертолетчик
ген сервером их и собираю
ну и в чем проблема там их фильтровать?
источник

СИ

Сергей Иванов in ErlangRus
cleverfox 🦊
selective receive это вредно. Этим можно пользоваться только если ты точно знаешь что делаешь
>если ты точно знаешь что делаешь

действительно  это редкий случай при программировании
источник

В

Вертолетчик in ErlangRus
cleverfox 🦊
ну и в чем проблема там их фильтровать?
Проблема в том, что таких сторонних прог может быть несколько, и каждая может выслать разный ответ, разное кол-во сообщений на одну команду
источник

СИ

Сергей Иванов in ErlangRus
Вертолетчик
Проблема в том, что таких сторонних прог может быть несколько, и каждая может выслать разный ответ, разное кол-во сообщений на одну команду
в чем суть вопроса-то?
источник

c🦊

cleverfox 🦊 in ErlangRus
Вертолетчик
Проблема в том, что таких сторонних прог может быть несколько, и каждая может выслать разный ответ, разное кол-во сообщений на одну команду
Я не понимаю в чем противоречие. Фильтровать внутри gen_server это никак тебе не помешает
источник