Newer
Older
//
// Created by Ben Bergkamp on 1/25/18.
//
#ifndef EECS398_SEARCH_PRODUCERCONSUMERQUEUE_H
#define EECS398_SEARCH_PRODUCERCONSUMERQUEUE_H
//for now use STL queue, create better one later
template <class T> class ProducerConsumerQueue {
private:
std::queue<T> queue;
pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t consumer_cv = PTHREAD_COND_INITIALIZER;
public:
ProducerConsumerQueue() {}
void Push(T obj);
T Pop();
size_t Size();
//Right now these pass objects by value but
// probably should pass pointers in future
//Necessary because this class is templated
#include"ProducerConsumerQueue.cpp"
#endif //EECS398_SEARCH_PRODUCERCONSUMERQUEUE_H