Size: a a a

2019 November 21

DF

Denis Fakhrtdinov in ErlangRus
start_child должен вернуть тебе pid(), но только в случае успеха всей операции ведь.
источник

ŹR

Źmićer Rubinštejn in ErlangRus
start_child это call же
источник

ŹR

Źmićer Rubinštejn in ErlangRus
все остальные будут в почтовом ящике дожидаться
источник

DF

Denis Fakhrtdinov in ErlangRus
Ну да.
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Еще и упасть могут по таймауту
источник

AB

Alexander Bogosyan in ErlangRus
ага, понял, да есть такой косяк с долгими init, согласен
источник

DF

Denis Fakhrtdinov in ErlangRus
Но энивей, я понял так, что в данном случае init не особо долгий, там просто много условий.
источник

AB

Alexander Bogosyan in ErlangRus
я помню оборачивал это так: супервизио запускает прокси процесс, который стартует всегда, а потом через процеси процесс стартует конкретный и линкуется с ним, но это какое то порно
источник

DF

Denis Fakhrtdinov in ErlangRus
Есть два подхода в работе с длинными init: отправка init-сообщения самому себе и небольшое хирургическое вмешательство с proc_lib:init_ack().
источник

DF

Denis Fakhrtdinov in ErlangRus
Оба подхода делают плюс-минус одно и то же.
источник

AB

Alexander Bogosyan in ErlangRus
типа
start_child(Args) ->
    {ok, Proxy} = supervisor:start_child(?MODULE,  []), %% proxy
    proxy:start_concrete(Pid, Args).
источник

TH

Taras Halturin in ErlangRus
Denis Fakhrtdinov
Есть два подхода в работе с длинными init: отправка init-сообщения самому себе и небольшое хирургическое вмешательство с proc_lib:init_ack().
для этого просто нужно кастануть самого себя в init, и уже в handle_cast доделать, что хотел
источник

DF

Denis Fakhrtdinov in ErlangRus
Отпускают супервизор и инициализируются перед попаданием в receive-loop.
источник

AB

Alexander Bogosyan in ErlangRus
Taras Halturin
для этого просто нужно кастануть самого себя в init, и уже в handle_cast доделать, что хотел
тут проблема что процесс живет без стейта некоторое время
источник

AB

Alexander Bogosyan in ErlangRus
Denis Fakhrtdinov
Отпускают супервизор и инициализируются перед попаданием в receive-loop.
тут проблема что не вернуть ошибку нормально, т.к. init_ack уже сделали =)
источник

DF

Denis Fakhrtdinov in ErlangRus
Ну или трусы или крестик какб.
источник

V

Vasilii Demidenok in ErlangRus
Кто-нибудь интегрировал Concuerror в common_tests/eunit ?
источник

DF

Denis Fakhrtdinov in ErlangRus
Можно упасть красиво.
источник

AB

Alexander Bogosyan in ErlangRus
Denis Fakhrtdinov
Ну или трусы или крестик какб.
с прокси процессом у меня получалось и трусы и крестик =)
источник

DF

Denis Fakhrtdinov in ErlangRus
Нет, ты просто замаскировал трусы.
источник