File 2863-Relay-remote-answers-more-efficiently.patch of Package erlang

From bbebbfb326f83ef93e286ed5ee822bb84a0a55d6 Mon Sep 17 00:00:00 2001
From: Anders Svensson <anders@erlang.org>
Date: Sun, 9 Feb 2020 11:43:52 +0100
Subject: [PATCH 3/7] Relay remote answers more efficiently

In code at least: every branch of the receive bangs to the same pid, so
do it once.
---
 lib/diameter/src/base/diameter_traffic.erl | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/diameter/src/base/diameter_traffic.erl b/lib/diameter/src/base/diameter_traffic.erl
index 2b7b152911..cdcb113170 100644
--- a/lib/diameter/src/base/diameter_traffic.erl
+++ b/lib/diameter/src/base/diameter_traffic.erl
@@ -1876,20 +1876,20 @@ z(#diameter_packet{header = H, bin = Bin, transport_data = T}) ->
 
 send({TPid, Pkt, #request{handler = Pid} = Req0, SvcName, Timeout, TRef}) ->
     Req = Req0#request{handler = self()},
-    recv(TPid, Pid, TRef, send_request(TPid, Pkt, Req, SvcName, Timeout)).
+    Pid ! recv(TPid, TRef, send_request(TPid, Pkt, Req, SvcName, Timeout)).
 
-%% recv/4
+%% recv/3
 %%
 %% Relay an answer from a remote node.
 
-recv(TPid, Pid, TRef, {LocalTRef, MRef}) ->
+recv(TPid, TRef, {LocalTRef, MRef}) ->
     receive
         {answer, _, _, _, _} = A ->
-            Pid ! A;
+            A;
         {'DOWN', MRef, process, _, _} ->
-            Pid ! {failover, TRef};
+            {failover, TRef};
         {failover = T, LocalTRef} ->
-            Pid ! {T, TRef};
+            {T, TRef};
         T ->
             exit({timeout, LocalTRef, TPid} = T)
     end.
-- 
2.16.4

openSUSE Build Service is sponsored by