A seguir: Buffer com sincronização interna: Acima: Exclusão Mútua Anterior: Exclusão Mútua
key mutex; char B[10]; int p=0, c=0, n=0; int Put(char x)boolean ok = false; lock(mutex) if(n < 10)
B[p] = x; p = (p+1) % 10; n++; ok = true;
; unlock(mutex) return ok;
int Get(char *x)
boolean ok = false; lock(mutex); if (n > 0)
*x = B[c]; c = (c+1) % 10; n-; ok = true;
; unlock(mutex) return ok;