Current section
Files
Jump to
Current section
Files
src/rtp_syn.erl
-module(rtp_syn).
-description('Custom N2O SYN MQ Backend for Syn v3').
-include_lib("n2o/include/n2o.hrl").
-export([init/0, send/2, reg/1, reg/2, unreg/1]).
init() -> ok.
send(Pool, Message) ->
syn:publish(n2o_mq, term_to_binary(Pool), Message).
reg(Pool) -> reg(Pool, undefined).
reg(Pool, _Value) ->
case get({pool, Pool}) of
undefined ->
case syn:join(n2o_mq, term_to_binary(Pool), self()) of
ok -> put({pool, Pool}, Pool);
{error, Reason} -> error_logger:error_msg("rtp_syn:join failed: ~p~n", [Reason])
end;
_Defined -> skip
end.
unreg(Pool) ->
case get({pool, Pool}) of
undefined -> skip;
_Defined ->
_ = syn:leave(n2o_mq, term_to_binary(Pool), self()),
erase({pool, Pool})
end.