summaryrefslogtreecommitdiff
path: root/ospfd/ospf_lsa.c
diff options
context:
space:
mode:
authorPaul Jakma <paul@quagga.net>2010-01-09 14:11:02 +0000
committerPaul Jakma <paul@quagga.net>2010-12-08 17:11:18 +0000
commit94b6bfd28357dfa5a4f478b7393522816976c0b0 (patch)
tree8c94b1e1730a3db7cd0c5371495a944745d8aa20 /ospfd/ospf_lsa.c
parente8f2226195e86f90f2409549ad8a8e5c8d64d23b (diff)
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 dbf0f417..0c23909b 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))