diff options
author | Gustav Simonsson <[email protected]> | 2012-02-24 14:59:12 +0100 |
---|---|---|
committer | Gustav Simonsson <[email protected]> | 2012-02-24 14:59:12 +0100 |
commit | 583585888569522b2380652c5cd4b7197f09523c (patch) | |
tree | 0bcfd6368bfc0db2fa258892f124032be9e3e693 /lib/stdlib/src/gen_event.erl | |
parent | 738c6d54dde1e4c8f6030690eabe50a287301eb9 (diff) | |
parent | d9ee75fa3df8676deb92136c38b65e928cde196e (diff) | |
download | otp-583585888569522b2380652c5cd4b7197f09523c.tar.gz otp-583585888569522b2380652c5cd4b7197f09523c.tar.bz2 otp-583585888569522b2380652c5cd4b7197f09523c.zip |
Merge branch 'maint'
Diffstat (limited to 'lib/stdlib/src/gen_event.erl')
-rw-r--r-- | lib/stdlib/src/gen_event.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/stdlib/src/gen_event.erl b/lib/stdlib/src/gen_event.erl index 3317b30e5c..ca05df20c0 100644 --- a/lib/stdlib/src/gen_event.erl +++ b/lib/stdlib/src/gen_event.erl @@ -107,8 +107,10 @@ -type add_handler_ret() :: ok | term() | {'EXIT',term()}. -type del_handler_ret() :: ok | term() | {'EXIT',term()}. --type emgr_name() :: {'local', atom()} | {'global', atom()}. --type emgr_ref() :: atom() | {atom(), atom()} | {'global', atom()} | pid(). +-type emgr_name() :: {'local', atom()} | {'global', atom()} + | {'via', atom(), term()}. +-type emgr_ref() :: atom() | {atom(), atom()} | {'global', atom()} + | {'via', atom(), term()} | pid(). -type start_ret() :: {'ok', pid()} | {'error', term()}. %%--------------------------------------------------------------------------- @@ -143,6 +145,7 @@ init_it(Starter, Parent, Name0, _, _, Options) -> name({local,Name}) -> Name; name({global,Name}) -> Name; +name({via,_, Name}) -> Name; name(Pid) when is_pid(Pid) -> Pid. -spec add_handler(emgr_ref(), handler(), term()) -> term(). @@ -209,6 +212,9 @@ call1(M, Handler, Query, Timeout) -> send({global, Name}, Cmd) -> catch global:send(Name, Cmd), ok; +send({via, Mod, Name}, Cmd) -> + catch Mod:send(Name, Cmd), + ok; send(M, Cmd) -> M ! Cmd, ok. |