Может ли диспетчер получить доступ к своим родительским методам / атрибутам источника? - PullRequest
0 голосов
/ 29 августа 2018

Может ли пользовательский диспетчер, созданный с @behavior GenStage.Dispatcher, получить доступ к своим родительским модулям, который вызывает его как {:producer, state, dispatcher: CustomDispatcher}?

Я понял, что диспетчер запускается в том же процессе, что и производитель.

Если я, например, попытаюсь запустить handle_call от диспетчера к производителю, я получу:

GenStage.call(producer, :test)                   
** (exit) exited in: GenServer.call(#PID<0.1575.0>, :test, 5000)
    ** (EXIT) process attempted to call itself
    (elixir) lib/gen_server.ex:917: GenServer.call/3

Итак, имея эту ошибку, есть ли другой очевидный способ доступа к методам производителя?

Я знаю, что вы можете инициализировать диспетчер с помощью params, но я хотел бы получить доступ к методам / состоянию производителя, потому что они изменены с помощью обратных вызовов производителя

...