File 0213-erts-Adjust-dist-obuf-size-correctly-after-hdr-fin.patch of Package erlang

From 9426d0cbb790b50ad5afcf348bb24e73e6b7b2da Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Fri, 22 Mar 2019 13:31:49 +0100
Subject: [PATCH 18/26] erts: Adjust dist obuf size correctly after hdr fin

---
 erts/emulator/beam/dist.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/erts/emulator/beam/dist.c b/erts/emulator/beam/dist.c
index 8669cc16c9..faed10ff91 100644
--- a/erts/emulator/beam/dist.c
+++ b/erts/emulator/beam/dist.c
@@ -2885,7 +2885,9 @@ erts_dist_command(Port *prt, int initial_reds)
 	    ob = oq.first;
 	    ASSERT(ob);
 	    do {
+                obufsize += size_obuf(ob);
 		reds = erts_encode_ext_dist_header_finalize(ob, dep, flags, reds);
+                obufsize -= size_obuf(ob);
                 if (reds < 0)
                     break;
                 last_finalized  = ob;
@@ -2924,7 +2926,9 @@ erts_dist_command(Port *prt, int initial_reds)
 	while (oq.first && !preempt) {
 	    ErtsDistOutputBuf *fob;
 	    Uint size;
+            obufsize += size_obuf(oq.first);
             reds = erts_encode_ext_dist_header_finalize(oq.first, dep, flags, reds);
+            obufsize -= size_obuf(oq.first);
             if (reds < 0) {
                 preempt = 1;
                 break;
-- 
2.16.4

openSUSE Build Service is sponsored by