From ddb8267c4d85b8d2290fc7fd062c85502fb98978 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Mon, 26 Mar 2018 13:38:51 -0700 Subject: If timeout is NNG_TIME_NEVER, then simply deschedule. --- src/core/timer.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/core/timer.c b/src/core/timer.c index 8db2e9d8..08337b70 100644 --- a/src/core/timer.c +++ b/src/core/timer.c @@ -113,17 +113,19 @@ nni_timer_schedule(nni_timer_node *node, nni_time when) nni_list_remove(&timer->t_entries, node); } - srch = nni_list_first(&timer->t_entries); - while ((srch != NULL) && (srch->t_expire < node->t_expire)) { - srch = nni_list_next(&timer->t_entries, srch); - } - if (srch != NULL) { - nni_list_insert_before(&timer->t_entries, node, srch); - } else { - nni_list_append(&timer->t_entries, node); - } - if (nni_list_first(&timer->t_entries) == node) { - nni_cv_wake1(&timer->t_sched_cv); + if (when != NNI_TIME_NEVER) { + srch = nni_list_first(&timer->t_entries); + while ((srch != NULL) && (srch->t_expire < node->t_expire)) { + srch = nni_list_next(&timer->t_entries, srch); + } + if (srch != NULL) { + nni_list_insert_before(&timer->t_entries, node, srch); + } else { + nni_list_append(&timer->t_entries, node); + } + if (nni_list_first(&timer->t_entries) == node) { + nni_cv_wake1(&timer->t_sched_cv); + } } nni_mtx_unlock(&timer->t_mx); } -- cgit v1.2.3-70-g09d2