added assert()s to enforce timer cookies
authorBernd Petrovitsch <bernd@firmix.at>
Wed, 12 Nov 2008 15:55:51 +0000 (16:55 +0100)
committerBernd Petrovitsch <bernd@firmix.at>
Wed, 12 Nov 2008 15:55:51 +0000 (16:55 +0100)
src/scheduler.c

index 3b79c9e..99e7bd0 100644 (file)
@@ -52,6 +52,7 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include <assert.h>
 
 /* Timer data, global. Externed in scheduler.h */
 clock_t now_times;                    /* current idea of times(2) reported uptime */
@@ -765,6 +766,8 @@ olsr_start_timer(unsigned int rel_time, olsr_u8_t jitter_pct,
 {
   struct timer_entry *timer;
 
+  assert(cookie != 0); /* we want timer cookies everywhere */
+
   timer = olsr_get_timer();
 
   /* Fill entry */
@@ -814,12 +817,15 @@ olsr_stop_timer(struct timer_entry *timer)
   if (!timer) {
     return;
   }
+
 #ifdef DEBUG
   OLSR_PRINTF(3, "TIMER: stop %s timer %p, ctx %p\n",
              olsr_cookie_name(timer->timer_cookie),
              timer, timer->timer_cb_context);
 #endif
 
+  assert(timer->timer_cookie != 0); /* we want timer cookies everywhere */
+
   /*
    * Carve out of the existing wheel_slot and return to the pool
    * rather than freeing for later reycling.
@@ -850,6 +856,8 @@ olsr_change_timer(struct timer_entry *timer, unsigned int rel_time,
     return;
   }
 
+  assert(timer->timer_cookie != 0); /* we want timer cookies everywhere */
+
   /* Singleshot or periodical timer ? */
   if (periodical) {
     timer->timer_period = rel_time;
@@ -887,8 +895,8 @@ olsr_set_timer(struct timer_entry **timer_ptr, unsigned int rel_time,
               olsr_u8_t jitter_pct, olsr_bool periodical,
               void (*timer_cb_function) (void *), void *context,
               olsr_cookie_t cookie)
-{
-
+{  
+  assert(cookie != 0); /* we want timer cookies everywhere */
   if (!*timer_ptr) {
 
     /* No timer running, kick it. */