summaryrefslogtreecommitdiff
path: root/src/lib/shm_rbuff_pthr.c
diff options
context:
space:
mode:
authorSander Vrijders <[email protected]>2017-08-17 16:09:24 +0000
committerdimitri staessens <[email protected]>2017-08-17 16:09:24 +0000
commiteefae235dd7af96eef3dc4f82f706170c379d260 (patch)
tree3959a7206bfa3b5de2881d4404a2746a75aaefda /src/lib/shm_rbuff_pthr.c
parentc7cb10810c447579cb20a8bc99049baeeb8e2065 (diff)
parent4d9c4025222e19dac9a90cabe8bd886e47959ad6 (diff)
downloadouroboros-eefae235dd7af96eef3dc4f82f706170c379d260.tar.gz
ouroboros-eefae235dd7af96eef3dc4f82f706170c379d260.zip
Merged in sandervrijders/ouroboros/be-frct (pull request #555)
lib: Add basic FRCT mechanisms
Diffstat (limited to 'src/lib/shm_rbuff_pthr.c')
-rw-r--r--src/lib/shm_rbuff_pthr.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/lib/shm_rbuff_pthr.c b/src/lib/shm_rbuff_pthr.c
index 44001458..7dc5f5d9 100644
--- a/src/lib/shm_rbuff_pthr.c
+++ b/src/lib/shm_rbuff_pthr.c
@@ -284,18 +284,12 @@ ssize_t shm_rbuff_read(struct shm_rbuff * rb)
}
ssize_t shm_rbuff_read_b(struct shm_rbuff * rb,
- const struct timespec * timeout)
+ const struct timespec * abstime)
{
- struct timespec abstime;
ssize_t idx = -1;
assert(rb);
- if (timeout != NULL) {
- clock_gettime(PTHREAD_COND_CLOCK, &abstime);
- ts_add(&abstime, timeout, &abstime);
- }
-
#ifndef HAVE_ROBUST_MUTEX
pthread_mutex_lock(rb->lock);
#else
@@ -306,10 +300,10 @@ ssize_t shm_rbuff_read_b(struct shm_rbuff * rb,
(void *) rb->lock);
while (shm_rbuff_empty(rb) && (idx != -ETIMEDOUT)) {
- if (timeout != NULL)
+ if (abstime != NULL)
idx = -pthread_cond_timedwait(rb->add,
rb->lock,
- &abstime);
+ abstime);
else
idx = -pthread_cond_wait(rb->add, rb->lock);
#ifdef HAVE_ROBUST_MUTEX