
hash define N 100 forward slash asterisk number of slots in the buffer asterisk forward slash
int count equals 0 semicolon forward slash asterisk number of items in the buffer asterisk forward slash
void producer open parenthesis void close parenthesis
open curly bracket
int item semicolon
while open parenthesis TRUE close parenthesis open curly bracket forward slash asterisk repeat forever asterisk forward slash
item equals produce underscore item open close parenthesis semicolon forward slash asterisk generate next item asterisk forward slash
if open parenthesis count equals equals N close parenthesis sleep open close parenthesis semicolon forward slash asterisk if buffer is full coma go to sleep asterisk forward slash
insert underscore item open parenthesis item close parenthesis semicolon forward slash asterisk put item in buffer asterisk forward slash
count equals count plus 1 semicolon forward slash asterisk increment count of items in buffer asterisk forward slash
if open parenthesis count equals equals 1 close parenthesis wakeup open parenthesis consumer close parenthesis semicolon forward slash asterisk was buffer empty question mark asterisk forward slash
close curly bracket
close curly bracket
void consumer open parenthesis void close parenthesis
open curly bracket
int item semicolon
while open parenthesis TRUE close parenthesis open curly bracket forward slash asterisk repeat forever asterisk forward slash
if open parenthesis count equals equals 0 close parenthesis sleep open close parenthesis semicolon forward slash asterisk if buffer is empty coma got to sleep asterisk forward slash
item equals remove underscore item open close parenthesis semicolon forward slash asterisk take item out of buffer asterisk forward slash
count equals count minus 1 semicolon forward slash asterisk decrement count of items in buffer asterisk forward slash
if open parenthesis count equals equals N minus 1 close parenthesis wakeup open parenthesis producer close parenthesis semicolon forward slash asterisk was buffer full question mark asterisk forward slash
consume underscore item open parenthesis item close parenthesis semicolon forward slash asterisk print item asterisk forward slash
close curly bracket
close curly bracket
Back