#include <sys/sem.h>

#include "rshmem.h"

#include <stdlib.h>

#include <time.h>

#include <stdio.h>

#include "proto.h"

void producir(){

float n;

n=rand();

n/=RAND_MAX;

TP;

printf("producir\n");

}

void meter(int *contador,int Mutex,int Lleno,int Vacio){

semWait(Mutex);

semWait(Vacio); /*s.entrada*/

*contador++; /*s.crítica*/

semSignal(Lleno);

semSignal(Mutex);/*s.salida*/

printf("meter\n");

}

void sacar(int *contador,int Mutex,int Lleno,int Vacio){

/*Sacamos c elementos del almacén*/

semWait(Mutex);

semWait(Lleno); /*s.entrada*/

*contador--; /*s.crítica*/

semSignal(Vacio);

semSignal(Mutex);/*s.salida*/

}

/*Sacamos las ruedas del almacén si el chasis que se evalua es defectuoso*/

void vaciar(int *contador,int Mutex,int Lleno,int Vacio){

semWait(Mutex);

while(*contador>1){

semSignal(Vacio);

semWait(Lleno);

*contador--;

printf("estoy vaciando el almacen\n");

}

semSignal(Mutex);

}


int control(){

return (((((float) rand())/RAND_MAX)>0.1)? 1 : 0) ;

}