diff options
Diffstat (limited to 'lib/qtimers.c')
-rw-r--r-- | lib/qtimers.c | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/lib/qtimers.c b/lib/qtimers.c index 8c08a6bc..ad8da395 100644 --- a/lib/qtimers.c +++ b/lib/qtimers.c @@ -18,23 +18,12 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ +#include "misc.h" -#include <stddef.h> -#include <string.h> - -#include "zassert.h" #include "qtimers.h" #include "memory.h" #include "heap.h" -enum { qdebug = -#ifdef QDEBUG - 1 -#else - 0 -#endif -}; - /*============================================================================== * Quagga Timers -- qtimer_xxxx * @@ -170,7 +159,7 @@ qtimer_pile_dispatch_next(qtimer_pile qtp, qtime_mono_t upto) { qtimer qtr ; - if (qdebug) + if (qtimers_debug) qtimer_pile_verify(qtp) ; qtr = heap_top_item(&qtp->timers) ; @@ -213,11 +202,12 @@ qtimer_pile_dispatch_next(qtimer_pile qtp, qtime_mono_t upto) * and the process MUST be run to completion. */ qtimer -qtimer_pile_ream(qtimer_pile qtp, int free_structure) +qtimer_pile_ream(qtimer_pile qtp, free_keep_b free_structure) { qtimer qtr ; + confirm(free_it == true) ; - qtr = heap_ream_keep(&qtp->timers) ; /* ream, keeping the heap structure */ + qtr = heap_ream(&qtp->timers, keep_it) ; /* ream, keeping the heap */ if (qtr != NULL) qtr->active = false ; /* has been removed from pile */ else @@ -342,7 +332,7 @@ qtimer_set(qtimer qtr, qtime_mono_t when, qtimer_action* action) qtp = qtr->pile ; assert(qtp != NULL) ; - if (qdebug) + if (qtimers_debug) qtimer_pile_verify(qtp) ; qtr->time = when ; @@ -370,7 +360,7 @@ qtimer_set(qtimer qtr, qtime_mono_t when, qtimer_action* action) else assert(qtr->action != NULL) ; - if (qdebug) + if (qtimers_debug) qtimer_pile_verify(qtp) ; } ; @@ -386,7 +376,7 @@ qtimer_unset(qtimer qtr) assert(qtp != NULL) ; - if (qdebug) + if (qtimers_debug) qtimer_pile_verify(qtp) ; if (qtr->active) @@ -396,7 +386,7 @@ qtimer_unset(qtimer qtr) heap_delete_item(&qtp->timers, qtr) ; - if (qdebug) + if (qtimers_debug) qtimer_pile_verify(qtp) ; qtr->active = false ; @@ -413,10 +403,10 @@ qtimer_pile_verify(qtimer_pile qtp) { heap th = &qtp->timers ; vector v ; - vector_index i ; - vector_index e ; + vector_index_t i ; + vector_length_t e ; qtimer qtr ; - bool seen ; + bool seen = false ; assert(qtp != NULL) ; @@ -429,7 +419,7 @@ qtimer_pile_verify(qtimer_pile qtp) assert(th->state == Heap_Has_Backlink) ; assert(th->backlink_offset == offsetof(qtimer_t, backlink)) ; - v = &th->v ; + v = th->v ; e = vector_end(v) ; for (i = 0 ; i < e ; ++i) { @@ -437,7 +427,10 @@ qtimer_pile_verify(qtimer_pile qtp) assert(qtr != NULL) ; if (qtr == qtp->implicit_unset) - seen = 1 ; + { + assert(!seen) ; + seen = true ; + } ; assert(qtr->active) ; |