summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_lsa.c
diff options
context:
space:
mode:
authorPaul Jakma <paul@quagga.net>2010-01-11 15:48:18 +0000
committerDavid Lamparter <equinox@diac24.net>2010-02-05 00:40:18 +0100
commit07fb060ca78d9b2711adb66e303c7e308ecd0385 (patch)
treed2bd08da4aae9d6b1ff1f743b9ecda2626feb61b /ospfd/ospf_lsa.c
parent6185bcce99ca1805ca7abf146cb660cb74c1b36b (diff)
downloadquagga-07fb060ca78d9b2711adb66e303c7e308ecd0385.tar.bz2
quagga-07fb060ca78d9b2711adb66e303c7e308ecd0385.tar.xz
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.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 6dd1d341..25bd754d 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2914,6 +2914,10 @@ ospf_maxage_lsa_remover (struct thread *thread)
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))