All pastes #453175 Raw Edit

ngd

public c v1 · immutable
·published 2007-04-22 20:15 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>#include "fila.h"#include "fila.c"#include "dados.h"#include "dados.c"#include "empilha.c"void produtor(int p);void consumidor(void);void down(int s);int up(int s);void insere_item(int p);void remove_item(void);int cheio=0,vazio=3,mutex=1;int main(void){tipoFila fila;tipoDados x;char op;int aprod;while(1){//clsMenu();printf("\nP para produzir, C para consumir, M para mostrar estado\n");scanf("%c", &op);switch(op){			case 'p':		printf("\nDigite o valor a produzir\n");		scanf("%d", &aprod);		produtor(aprod);	//	cls();		break;	case 'c': printf("\nTentando consumir...\n");		  consumidor();		 // cls();		  break;    case 'm':         exibe();         break;	/*case 'f':          imprimefila();*/    default: printf("nao tem essa opcao");	}}}/*// envia e lista os dados da filainicializa(&fila);printf("Introduza uma sequencia de caracteres:\n");while(!leDados(&x)){adiciona(&fila,x);}printf("Sequencia lida:\n");while(!filaVazia(&fila)){retira(&fila,&x);escreveDados(x);}printf("\n");exit(0);}*/void produtor(int p){	down(vazio);down(mutex);if(vazio != 0){insere(p);exibe();}else {	//insere na fila}up(mutex);cheio = up(cheio); }void consumidor(void){down(cheio);down(mutex);if(cheio != 0){remove_item();}else { //coloca na fila }up(mutex);up(vazio);}}void down(int s){	if(s > 0)	{		s=s-1;	}	else{		//sleep();		printf("dorme");             s=0;	}}int up(int s){	s=s+1;        return s;}void insere_item(int p){}void remove_item(void){remover();}