diff options
author | Anders Svensson <[email protected]> | 2014-05-26 09:19:52 +0200 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2014-05-26 09:19:52 +0200 |
commit | 33d93dd68404d567b2dfb7a5b9ffcf5f525dcd3c (patch) | |
tree | 53abea67828a8f1d7afb6c589842d1cb4f3332f9 /lib/diameter/src/base/diameter_watchdog.erl | |
parent | b1d450019e1629db599e56ee6b1e4296cc8d039d (diff) | |
parent | b1138f27083b1d36a6a20e1d2538b3fbaff61702 (diff) | |
download | otp-33d93dd68404d567b2dfb7a5b9ffcf5f525dcd3c.tar.gz otp-33d93dd68404d567b2dfb7a5b9ffcf5f525dcd3c.tar.bz2 otp-33d93dd68404d567b2dfb7a5b9ffcf5f525dcd3c.zip |
Merge branch 'anders/diameter/dpr/OTP-11938' into maint
* anders/diameter/dpr/OTP-11938:
Ensure watchdog dies with transport if DPA was sent
Diffstat (limited to 'lib/diameter/src/base/diameter_watchdog.erl')
-rw-r--r-- | lib/diameter/src/base/diameter_watchdog.erl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/diameter/src/base/diameter_watchdog.erl b/lib/diameter/src/base/diameter_watchdog.erl index dbfe087659..e89b1394ee 100644 --- a/lib/diameter/src/base/diameter_watchdog.erl +++ b/lib/diameter/src/base/diameter_watchdog.erl @@ -329,6 +329,11 @@ transition({shutdown = T, Pid, Reason}, #watchdog{parent = Pid, send(TPid, {T, self(), Reason}), S#watchdog{shutdown = true}; +%% Transport is telling us that DPA has been sent in response to DPR: +%% its death should lead to ours. +transition({'DPR', TPid}, #watchdog{transport = TPid} = S) -> + S#watchdog{shutdown = true}; + %% Parent process has died, transition({'DOWN', _, process, Pid, _Reason}, #watchdog{parent = Pid}) -> @@ -400,7 +405,7 @@ transition({open = Key, TPid, _Hosts, T}, %% REOPEN Connection down CloseConnection() %% SetWatchdog() DOWN -%% Transport has died after service requested termination ... +%% Transport has died after DPA or service requested termination ... transition({'DOWN', _, process, TPid, _Reason}, #watchdog{transport = TPid, shutdown = true}) -> |