From 6e1d9054c330cdc2fa7baabf56cbeea3a05db014 Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Tue, 17 Jul 2012 12:19:16 +1000 Subject: [PATCH] RB: use sem_getvalue as a tie breaker when read_pt == write_pt Signed-off-by: Angus Salkeld --- lib/ringbuffer.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/ringbuffer.c b/lib/ringbuffer.c index 90e1313..f60bbf9 100644 --- a/lib/ringbuffer.c +++ b/lib/ringbuffer.c @@ -346,7 +346,11 @@ qb_rb_space_free(struct qb_ringbuffer_s * rb) } else if (write_size < read_size) { space_free = (read_size - write_size) - 1; } else { - space_free = rb->shared_hdr->word_size; + if (rb->sem_getvalue_fn && rb->sem_getvalue_fn(rb) > 0) { + space_free = 0; + } else { + space_free = rb->shared_hdr->word_size; + } } /* word -> bytes */