#include "semaphore.h" #include "BoundedBuffer.h" #include #include void BoundedBuffer::push(string item){ empty->P(); mutex->P(); data.push_back(item); mutex->V(); full->V();//increment the number of full slots now. } string BoundedBuffer::pop(){ full->P(); mutex->P(); string item = data.back(); data.pop_back(); mutex->V(); empty->V(); return item; }