aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2012-11-18 19:38:39 +0100
committerAnders Svensson <[email protected]>2012-11-18 19:38:39 +0100
commit87241d86716ae02507a5019c3a2f822ff6b334d4 (patch)
treeb7321cabe63e0d3ca6e4578eb824fac104c848e7 /lib/diameter
parent9c3a39fa8a5edfaea75226579e28aab49506902c (diff)
parent476db5308088f0a907aa72726a75e31c695a92d3 (diff)
downloadotp-87241d86716ae02507a5019c3a2f822ff6b334d4.tar.gz
otp-87241d86716ae02507a5019c3a2f822ff6b334d4.tar.bz2
otp-87241d86716ae02507a5019c3a2f822ff6b334d4.zip
Merge branch 'anders/diameter/service_events/OTP-10492' into maint
* anders/diameter/service_events/OTP-10492: Add start/stop service_event()
Diffstat (limited to 'lib/diameter')
-rw-r--r--lib/diameter/doc/src/diameter.xml11
-rw-r--r--lib/diameter/src/base/diameter_service.erl2
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/diameter/doc/src/diameter.xml b/lib/diameter/doc/src/diameter.xml
index 80863f8eff..a35fd5b3a8 100644
--- a/lib/diameter/doc/src/diameter.xml
+++ b/lib/diameter/doc/src/diameter.xml
@@ -512,6 +512,17 @@ following types.</p>
<taglist>
+<tag><c>start</c></tag>
+<tag><c>stop</c></tag>
+
+<item>
+<p>
+The service is being started or stopped.
+No event precedes a <c>start</c> event.
+No event follows a <c>stop</c> event and this event
+implies the termination of all transport processes.</p>
+</item>
+
<tag><c>{up, Ref, Peer, Config, Pkt}</c></tag>
<tag><c>{up, Ref, Peer, Config}</c></tag>
<tag><c>{down, Ref, Peer, Config}</c></tag>
diff --git a/lib/diameter/src/base/diameter_service.erl b/lib/diameter/src/base/diameter_service.erl
index cffba4fc94..36907a8d1c 100644
--- a/lib/diameter/src/base/diameter_service.erl
+++ b/lib/diameter/src/base/diameter_service.erl
@@ -681,6 +681,7 @@ upgrade_insert(#state{service = #diameter_service{pid = Pid}} = S) ->
%%% ---------------------------------------------------------------------------
terminate(Reason, #state{service_name = Name} = S) ->
+ send_event(Name, stop),
ets:delete(?STATE_TABLE, Name),
shutdown == Reason %% application shutdown
andalso shutdown(S).
@@ -857,6 +858,7 @@ i(SvcName) ->
lists:foreach(fun(T) -> start_fsm(T,S) end, CL),
init_shared(S),
+ send_event(SvcName, start),
S.
cfg_acc({SvcName, #diameter_service{applications = Apps} = Rec, Opts},