From: Bastian Dehn Date: Sun, 24 Apr 2022 16:08:43 +0000 (+0200) Subject: add: logic for wait threads X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=8e101f4ce30b4ae690f97dc84f0d1d3fc2c7ae37;p=ringbuffer.git add: logic for wait threads --- diff --git a/demo.c b/demo.c index bad3e2e..85c9f36 100644 --- a/demo.c +++ b/demo.c @@ -1,9 +1,24 @@ #include #include +#include #include "ringbuffer.h" #define maxvalues 60 +void waitSrcBuffer(ringbuffer *buf) +{ + while(buf->full) { + sleep(1); + } +} + +void waitDstBuffer(ringbuffer *buf) +{ + while(buf->count == 0 && !buf->finish) { + sleep(1); + } +} + void *readValues(void *buf) { ringbuffer *buffer = (ringbuffer*) buf; @@ -14,7 +29,10 @@ void *readValues(void *buf) buffer->tail, buffer->count, i); + waitSrcBuffer(buffer); } + + buffer->finish = true; } void *outValues(void *buf) @@ -27,6 +45,7 @@ void *outValues(void *buf) buffer->tail, buffer->count, getValue(buffer)); + waitDstBuffer(buffer); } }