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