int pBlocked=0, cBlocked=0, pass; sem_t pWait=0, cWait=0; sem_t m=1, m2=1; void bProduce(int value){ int localCBlocked, c; P(m); if(cBlocked==0){ pBlocked++; V(m); P(cWait); } localCBlocked = cBlocked; pass = value; for(c=0; c