Long description

Back

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