All pastes #1559016 Raw Edit

Cadu

public c v1 · immutable
#1559016 ·published 2009-09-08 22:53 UTC
rendered paste body
#include <stdio.h>#include <pthread.h>#include <unistd.h>#define LIMIT 10000int buffer = 0;int max = 5;int vez = 0;int querEntrar[2];void *producer(){    int c;    for (c = 0; c < LIMIT; c++) {        querEntrar[0] = 1;        vez = 1;        while (querEntrar[1] == 1 && vez == 1) {            usleep(100);        }        if (buffer < max) {            buffer++;            printf("Buffer: %d\n", buffer);        }        querEntrar[0] = 0;        usleep(100);    }    pthread_exit(NULL);}void consumer(){    int c;    for (c = 0; c < LIMIT; c++) {        querEntrar[1] = 1;        vez = 0;        while (querEntrar[0] == 1 && vez == 0) {            usleep(100);        }        if (buffer > 0) {            buffer--;            printf("Buffer: %d\n", buffer);        }        querEntrar[1] = 0;        usleep(100);    }}int main(int argc, char **argv){    pthread_t thread;    querEntrar[0] = 0;    querEntrar[1] = 0;    vez = 0;    pthread_create(&thread, NULL, &producer, NULL);    consumer();    pthread_exit(NULL);}