Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Mutex counter_mutex;
- Condition read_phase, write_phase;
- int resource_counter = 0;
- // READERS
- Lock(counter_mutex) {
- while(resource_counter == -1)
- Wait(counter_mutex, read_phase);
- resource_counter++;
- } // unlock
- // ... read data ...
- Lock(counter_mutex) {
- resource_counter--;
- if(resource_counter == 0)
- Signal(write_phase);
- } // unlock
- // WRITER
- Lock(counter_mutex) {
- while(resource_counter != 0)
- Wait(counter_mutex, write_phase);
- resource_counter = -1;
- } // unlock
- // ... write data ...
- Lock(counter_mutex) {
- resource_counter = 0;
- Broadcast(read_phase);
- Signal(write_phase);
- } // unlock
Add Comment
Please, Sign In to add comment