aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-03-26 13:38:51 -0700
committerGarrett D'Amore <garrett@damore.org>2018-03-30 12:38:56 -0700
commitddb8267c4d85b8d2290fc7fd062c85502fb98978 (patch)
tree3abd206edbe67af1d39ce05c755fa29cf681ad95 /src
parent99907b52872d9fc9c68f1af60299dd8476c0a603 (diff)
downloadnng-ddb8267c4d85b8d2290fc7fd062c85502fb98978.tar.gz
nng-ddb8267c4d85b8d2290fc7fd062c85502fb98978.tar.bz2
nng-ddb8267c4d85b8d2290fc7fd062c85502fb98978.zip
If timeout is NNG_TIME_NEVER, then simply deschedule.
Diffstat (limited to 'src')
-rw-r--r--src/core/timer.c24
1 files changed, 13 insertions, 11 deletions
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);
}