From 8e101f4ce30b4ae690f97dc84f0d1d3fc2c7ae37 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 24 Apr 2022 18:08:43 +0200 Subject: [PATCH] add: logic for wait threads --- demo.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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); } } -- 2.39.5