diff options
author | Sander Vrijders <sander.vrijders@ugent.be> | 2017-08-22 18:52:32 +0200 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2017-08-22 18:57:04 +0200 |
commit | 494394829de2a0aa96321103ad3734c3e8e5280e (patch) | |
tree | d8c3193215c893f403ed7ea0a6a6a7ce7ec44263 | |
parent | 941a34c657f6860034315d11c79767dd37fba0c7 (diff) | |
download | ouroboros-494394829de2a0aa96321103ad3734c3e8e5280e.tar.gz ouroboros-494394829de2a0aa96321103ad3734c3e8e5280e.zip |
lib: Fix timeout value of flow_event_wait
shm_flow_set_wait was called with a timeout even though
flow_event_wait was called with timeout NULL.
-rw-r--r-- | src/lib/dev.c | 10 | ||||
-rw-r--r-- | src/lib/shm_flow_set.c | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/dev.c b/src/lib/dev.c index 894a7bab..c21e621a 100644 --- a/src/lib/dev.c +++ b/src/lib/dev.c @@ -1289,8 +1289,9 @@ int flow_event_wait(struct flow_set * set, struct fqueue * fq, const struct timespec * timeout) { - ssize_t ret; - struct timespec abstime; + ssize_t ret; + struct timespec abstime; + struct timespec * t = NULL; if (set == NULL || fq == NULL) return -EINVAL; @@ -1303,13 +1304,14 @@ int flow_event_wait(struct flow_set * set, if (timeout != NULL) { clock_gettime(PTHREAD_COND_CLOCK, &abstime); ts_add(&abstime, timeout, &abstime); + t = &abstime; } if (set->np1_set) - ret = frcti_event_wait(set, fq, &abstime); + ret = frcti_event_wait(set, fq, t); else ret = shm_flow_set_wait(ai.fqset, set->idx, - fq->fqueue, &abstime); + fq->fqueue, t); if (ret == -ETIMEDOUT) { fq->fqsize = 0; diff --git a/src/lib/shm_flow_set.c b/src/lib/shm_flow_set.c index f4a70689..78fdce36 100644 --- a/src/lib/shm_flow_set.c +++ b/src/lib/shm_flow_set.c @@ -364,7 +364,7 @@ ssize_t shm_flow_set_wait(const struct shm_flow_set * set, set->lock, abstime); #ifdef HAVE_CANCEL_BUG - if (ret == -ETIMEDOUT) + if (ret == -ETIMEDOUT) pthread_testcancel(); #endif } else { |