summaryrefslogtreecommitdiffstats
path: root/lib/qtimers.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/qtimers.c')
-rw-r--r--lib/qtimers.c41
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) ;