Size: a a a

2020 December 10

AB

Alexander Beniaminov in pro.elixir
Заблуждаетесь
источник

LL

Lama Lover in pro.elixir
Alexander Beniaminov
Заблуждаетесь
Не заблуждаюсь
источник

LL

Lama Lover in pro.elixir
selective receive есть только в gen:call
источник

AB

Alexander Beniaminov in pro.elixir
В нем нет selective receive, но в нем с помощью transition postpone и state_timeout можно смоделировать поведение selective receive
источник

AB

Alexander Beniaminov in pro.elixir
и выше я цитировал документацию erlang
источник

AB

Alexander Beniaminov in pro.elixir
и не стоит говориить, что gen_statem это "тот же самый gen_server, только с парой приятных штучек". Можно было так сказать про gen_fsm и то с некоторой натяжкой
источник

LL

Lama Lover in pro.elixir
Alexander Beniaminov
В нем нет selective receive, но в нем с помощью transition postpone и state_timeout можно смоделировать поведение selective receive
Ну postpone это не совсем selective receive, сообщения принимаются и кладутся в отдельную очередь до востребования.

То есть selective часть придётся самому делать
источник

AB

Alexander Beniaminov in pro.elixir
Какой вы странный, я говорю, что можно СМОДЕЛИРОВАТЬ поведение selective receive.
источник

AB

Alexander Beniaminov in pro.elixir
и в чистом erlang selective receive - это не конструкция языка, а прием использующий  receive after 0 receive
источник

LL

Lama Lover in pro.elixir
Alexander Beniaminov
Какой вы странный, я говорю, что можно СМОДЕЛИРОВАТЬ поведение selective receive.
А, я видимо неправильно прочитал, да...
источник

IA

Ivan Ananev in pro.elixir
ну это в итоге O(n) ?
источник

LL

Lama Lover in pro.elixir
Ivan Ananev
ну это в итоге O(n) ?
Если n это количество сообщений пришедших с последнего опроса очереди, то да
источник

IA

Ivan Ananev in pro.elixir
дороговастенько
источник

LL

Lama Lover in pro.elixir
Ivan Ananev
дороговастенько
А по-другому не получится. Суть в том что selective receive это довольно редкий кейс.
Если бы было несколько mailbox-ов, то это усложнило бы посылку сообщений или их получение в <количество mailbox-ов> раз
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Lama Lover
А по-другому не получится. Суть в том что selective receive это довольно редкий кейс.
Если бы было несколько mailbox-ов, то это усложнило бы посылку сообщений или их получение в <количество mailbox-ов> раз
Один параметр добавился бы
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Для посылки
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну для чтения ясно, что был бы кейс
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Но это считай бизнеслогика
источник

IA

Ivan Ananev in pro.elixir
Źmićer Rubinštejn
Но это считай бизнеслогика
и новый beam
источник

AB

Alexander Beniaminov in pro.elixir
Есть задача о Санта Клаусе. На чистом erlang или elixir она решается относительно легко, но вот решить ее в рамках ОТП может быть сложнее
источник