Revisiting monitors

Readers/writers problem

First attempt

Monitor, Reader, Writer, and top-level

Analysis

Fairness considerations

Second Attempt

Monitor, Reader, Writer, and top-level program

Analysis

Resource allocation problem

Implementation using monitors

code

Resource allocation problem (multiple requests)

code

Nested monitor calls

Summary