Author: Andrew Main (Zefram) <zefram@fysh.org>. Date: 2005-09-14. Abstract:
A large class of popular synchronisation algorithms is unsafe in the presence of asynchronous exceptions. This is attributable to the semantics of condition variables of the type described by Hoare and now very widely implemented. It is difficult to write async-safe code using these condition variables. A modification of monitor semantics is presented which yields a class of synchronisation primitives that makes it much easier to write correct async-safe code.
Available as plain text.