From 366fe98c3f685595c5b4e9c6cb19d1034d7b24f6 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 25 Jun 2018 17:13:12 +0200
Subject: kernel: Fix tick count bug when pending writes

---
 lib/kernel/src/dist_util.erl | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

(limited to 'lib')

diff --git a/lib/kernel/src/dist_util.erl b/lib/kernel/src/dist_util.erl
index 86120a5483..d80971f414 100644
--- a/lib/kernel/src/dist_util.erl
+++ b/lib/kernel/src/dist_util.erl
@@ -750,12 +750,12 @@ send_tick(Socket, Tick, Type, MFTick, MFGetstat) ->
 	    {ok, Tick#tick{write = W + 1,
 			   tick = T1}};
 	{ok, Read, Write, Pend} ->
-	    send_tick(Socket, Pend, MFTick),
-	    {ok, Tick#tick{write = Write + 1,
+	    Sent = send_tick(Socket, Pend, MFTick),
+	    {ok, Tick#tick{write = Write + Sent,
 			   tick = T1}};
 	{ok, R, Write, Pend} ->
-	    send_tick(Socket, Pend, MFTick),
-	    {ok, Tick#tick{write = Write + 1,
+	    Sent = send_tick(Socket, Pend, MFTick),
+	    {ok, Tick#tick{write = Write + Sent,
 			   read = R,
 			   tick = T1,
 			   ticked = T}};
@@ -772,10 +772,11 @@ send_tick(Socket, Tick, Type, MFTick, MFGetstat) ->
     end.
 
 send_tick(Socket, 0, MFTick) ->
-    MFTick(Socket);
+    MFTick(Socket),
+    1;
 send_tick(_, _Pend, _) ->
     %% Dont send tick if pending write.
-    ok.
+    0.
 
 %% ------------------------------------------------------------
 %% Connection setup timeout timer.
-- 
cgit v1.2.3