From 7ab344144d977fc74578e1dcf1d514888caf7914 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 24 Apr 2022 17:35:53 +0200 Subject: [PATCH] add: read thread --- CMakeLists.txt | 1 + demo.c | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2accbcd..df5e5bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,3 +3,4 @@ cmake_minimum_required(VERSION 3.18.4) project(ringbuffer) add_executable(ringbuffer demo.c ringbuffer.c) +target_link_libraries(ringbuffer pthread) diff --git a/demo.c b/demo.c index 02cf216..5335f0e 100644 --- a/demo.c +++ b/demo.c @@ -1,18 +1,27 @@ #include +#include #include "ringbuffer.h" #define maxvalues 60 +void *readValues(void *buf) +{ + ringbuffer *buffer = (ringbuffer*) buf; + for (int i = 0; i < maxvalues; i++) { + addValue(buffer, i); + printf("add: Head: %d, Tail %d, Count: %d, Value: %d\n", buffer->head, buffer->tail, buffer->count, i); + } +} + int main() { - ringbuffer buffer; + pthread_t readthread; + ringbuffer buffer; initRingbuffer(&buffer, 50); - for (int i = 0; i < maxvalues; i++) { - addValue(&buffer, i); - printf("add: Head: %d, Tail %d, Count: %d, Value: %d\n", buffer.head, buffer.tail, buffer.count, i); - } + pthread_create(&readthread, NULL, readValues, &buffer); + pthread_join(readthread, NULL); for (int i = 0; i < maxvalues; i++) { printf("get: Head: %d, Tail %d, Count: %d, Value: %d\n", buffer.head, buffer.tail, buffer.count, getValue(&buffer)); -- 2.39.5