Forward events from a GenEvent server to my process in elixir otp

I have a GenEvent server, and I would like to be able to add several processes that send events when I send event notifications to the main server.

I can create a forwarding module and pass it a pid to send the message too, but since it seams as if it should be a common template, I was wondering if there is a better way.

In GenEvent docs type for handler

handler :: atom | {atom, term} | {pid, reference}

When I try to add the last form handler to the GenEvent server, I always get an error.

GenEvent.add_mon_handler(pid, {self, make_ref}, [])
{:error,
 {:badarg,
  [{:erlang, :apply, [#PID<0.59.0>, :init, [[]]], []},
   {GenEvent, :do_handler, 3, [file: 'lib/gen_event.ex', line: 990]},
   {GenEvent, :do_add_handler, 5, [file: 'lib/gen_event.ex', line: 947]},
   {GenEvent, :handle_msg, 5, [file: 'lib/gen_event.ex', line: 608]},
   {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 240]}]}}

, , pid . erlang gen_event atom {atom, term}.

+4
1
+1

Source: https://habr.com/ru/post/1609263/


All Articles