diff --git a/src/sccp_links.erl b/src/sccp_links.erl index fc44a7b..e9b1662 100644 --- a/src/sccp_links.erl +++ b/src/sccp_links.erl @@ -170,6 +170,13 @@ handle_cast(Info, S) -> {info, Info}, {state, S}]), {noreply, S}. +handle_info({'EXIT', Pid, Reason}, S) -> + io:format("EXIT from Process ~p (~p), cleaning up tables~n", + [Pid, Reason]), + #su_state{linkset_tbl = LinksetTbl, link_tbl = LinkTbl} = S, + ets:match_delete(LinksetTbl, #slinkset{user_pid = Pid}), + ets:match_delete(LinkTbl, #slink{user_pid = Pid}), + {noreply, S}; handle_info(Info, S) -> error_logger:error_report(["unknown handle_info", {module, ?MODULE}, diff --git a/src/sccp_user.erl b/src/sccp_user.erl index 856d8d6..f035248 100644 --- a/src/sccp_user.erl +++ b/src/sccp_user.erl @@ -110,6 +110,12 @@ handle_cast(Info, S) -> {info, Info}, {state, S}]), {noreply, S}. +handle_info({'EXIT', Pid, Reason}, S) -> + #scu_state{user_table = Tbl} = S, + io:format("EXIT from Process ~p (~p), cleaning up tables~n", + [Pid, Reason]), + ets:match_delete(Tbl, #scu_record{user_pid = Pid}), + {noreply, S}; handle_info(Info, S) -> error_logger:error_report(["unknown handle_info", {module, ?MODULE},