From 2d879dc3fc8eeb6a5f3d7c2a445f64e3d4379a62 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Mon, 3 Jan 2011 11:35:42 +0100 Subject: [PATCH] [commtech] Fix idx test in c_cache technique. c_cache watching status value when idx % BUF_SIZE != 0 instead of when it's equal zero. --- communication_techniques/src/communication/c_cache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/communication_techniques/src/communication/c_cache.c b/communication_techniques/src/communication/c_cache.c index e0da7c9..8914f68 100644 --- a/communication_techniques/src/communication/c_cache.c +++ b/communication_techniques/src/communication/c_cache.c @@ -82,11 +82,11 @@ void *recv_one_data(void) static __thread int i; void *result; - if (unlikely(i % (BUF_SIZE / sizeof(void *)))) + if (unlikely(!(i % (BUF_SIZE / sizeof(void *))))) while (!comm.cons->channel->state); result = (void *) comm.cons->channel->buf[i++]; i %= (2 * BUF_SIZE) / sizeof(void *); - if (unlikely(i % (BUF_SIZE / sizeof(void *)))) + if (unlikely(!(i % (BUF_SIZE / sizeof(void *))))) comm.cons->channel->state = 0; return result; }