project(ringbuffer)
-add_executable(ringbuffer demo.c ringbuffer.c)
+add_executable(ringbuffer demo.c ringbuffer.c readbuffer.c)
target_link_libraries(ringbuffer pthread)
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
+#include "readbuffer.h"
#include "ringbuffer.h"
#define maxvalues 1000000
-void waitSrcBuffer(ringbuffer *buf)
-{
- while (buf->full) {
- usleep(100);
- }
-}
-
void waitDstBuffer(ringbuffer *buf)
{
while (buf->count == 0 && !buf->finish) {
}
}
-void *readValues(void *buf)
-{
- ringbuffer *buffer = (ringbuffer*) buf;
-
- for (int i = 0; i < maxvalues; i++) {
- waitSrcBuffer(buffer);
- addValue(buffer, i);
- printf("add: Head: %d, Tail %d, Count: %d, Value: %d\n",
- buffer->head,
- buffer->tail,
- buffer->count,
- i);
- }
-
- buffer->finish = true;
-}
-
void *outValues(void *buf)
{
ringbuffer *buffer = (ringbuffer*) buf;
--- /dev/null
+#include <stdio.h>
+#include <unistd.h>
+#include "readbuffer.h"
+
+#define maxvalues 1000000
+
+void waitSrcBuffer(ringbuffer *buf)
+{
+ while (buf->full) {
+ usleep(100);
+ }
+}
+
+void *readValues(void *buf)
+{
+ ringbuffer *buffer = (ringbuffer*) buf;
+
+ for (int i = 0; i < maxvalues; i++) {
+ waitSrcBuffer(buffer);
+ addValue(buffer, i);
+ printf("add: Head: %d, Tail %d, Count: %d, Value: %d\n",
+ buffer->head,
+ buffer->tail,
+ buffer->count,
+ i);
+ }
+
+ buffer->finish = true;
+}
--- /dev/null
+#ifndef READBUFFER_H
+#define READBUFFER_H
+#include "ringbuffer.h"
+
+void waitSrcBuffer(ringbuffer *buf);
+void *readValues(void *buf);
+
+#endif