summaryrefslogtreecommitdiff
path: root/net/bird3/files/patch-01-Table-not-feeding-twice
diff options
context:
space:
mode:
authorOlivier Cochard <olivier@FreeBSD.org>2025-01-09 22:58:36 +0100
committerOlivier Cochard <olivier@FreeBSD.org>2025-01-09 23:07:38 +0100
commit4516e09a236bb31d6e852eadfb05f9576e4db7da (patch)
tree5c2d947f22448c924040427c8613edf8d6bda02e /net/bird3/files/patch-01-Table-not-feeding-twice
parentmath/gp2c: upgrade to 0.0.14 (diff)
net/bird3: Add new branch 3.x (multithreaded)
Warning: Consider version 3.0.0 to be unstable. PR: 283403 Sponsored by: Netflix
Diffstat (limited to 'net/bird3/files/patch-01-Table-not-feeding-twice')
-rw-r--r--net/bird3/files/patch-01-Table-not-feeding-twice39
1 files changed, 39 insertions, 0 deletions
diff --git a/net/bird3/files/patch-01-Table-not-feeding-twice b/net/bird3/files/patch-01-Table-not-feeding-twice
new file mode 100644
index 000000000000..4fb40a644fb2
--- /dev/null
+++ b/net/bird3/files/patch-01-Table-not-feeding-twice
@@ -0,0 +1,39 @@
+From 0a2f92ad205d96d0be0945ecf2bb740b68d5a3c1 Mon Sep 17 00:00:00 2001
+From: Maria Matejka <mq@ucw.cz>
+Date: Thu, 19 Dec 2024 11:54:05 +0100
+Subject: [PATCH] Table: not feeding twice, once is enough
+
+If there is no feed pending, the requested one should be
+activated immediately, otherwise it is activated only after
+the full run, effectively running first a full feed and
+then the requested one.
+---
+ nest/rt-export.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/nest/rt-export.c b/nest/rt-export.c
+index 7368447de..7d51e54cf 100644
+--- nest/rt-export.c
++++ nest/rt-export.c
+@@ -357,8 +357,16 @@ rt_export_refeed_feeder(struct rt_export_feeder *f, struct rt_feeding_request *r
+ if (!rfr)
+ return;
+
+- rfr->next = f->feed_pending;
+- f->feed_pending = rfr;
++ if (f->feeding)
++ {
++ rfr->next = f->feed_pending;
++ f->feed_pending = rfr;
++ }
++ else
++ {
++ rfr->next = NULL;
++ f->feeding = rfr;
++ }
+ }
+
+ void rt_export_refeed_request(struct rt_export_request *rer, struct rt_feeding_request *rfr)
+--
+GitLab
+