Implementing a Blocking Monitor