summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_lsa.c
diff options
context:
space:
mode:
authorPaul Jakma <paul@quagga.net>2010-01-09 15:11:02 +0100
committerPaul Jakma <paul@quagga.net>2010-12-08 18:11:18 +0100
commit94b6bfd28357dfa5a4f478b7393522816976c0b0 (patch)
tree8c94b1e1730a3db7cd0c5371495a944745d8aa20 /ospfd/ospf_lsa.c
parentospfd: Fix various route_unlock discrepencies (diff)
downloadfrr-94b6bfd28357dfa5a4f478b7393522816976c0b0.tar.xz
frr-94b6bfd28357dfa5a4f478b7393522816976c0b0.zip
ospfd: the maxage_lsa_remover should check whether it needs to yield the cpu
Diffstat (limited to 'ospfd/ospf_lsa.c')
-rw-r--r--ospfd/ospf_lsa.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index dbf0f4173..0c23909bd 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2911,7 +2911,11 @@ ospf_maxage_lsa_remover (struct thread *thread)
reschedule = 1;
continue;
}
-
+
+ /* TODO: maybe convert this function to a work-queue */
+ if (thread_should_yield (thread))
+ OSPF_TIMER_ON (ospf->t_maxage, ospf_maxage_lsa_remover, 0);
+
/* Remove LSA from the LSDB */
if (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF))
if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))