//CSE 660
//Jason Kim
//Lab 3

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <iostream>
#include <signal.h>
#include <wait.h>
#include "sshm.h"
#include "ssem.h"

using namespace std;

//code of procY

int main()
{
	int i,full,empty,mutex;
	//get semid
	full = sem_open(1);
	mutex = sem_open(2);
	empty = sem_open(3);
	char *item;

	//open memory
	char *BufferB;
	shm_get(456,(void**)&BufferB,30*sizeof(char));
	
	/*produce an item*/
	for (i=0;i<500;i++)
	{
		if(i%75==0)
		{
			sleep(2);
		}
		sprintf(item,"YYY",i);
		sem_wait(empty);
		sem_wait(mutex);
		/*add item to buffer*/
		BufferA = item;
		sem_signal(mutex);
		sem_signal(full);

	}
	return 0;

}

