The path expression
path put() ; get()
is better than the previous semaphore path expression because
this path expression provides the proper blocking behavior for get()
calls.
If a get()
arrives first, it is delayed until the corresponding put()
arrives.
Unfortunately, this path expression also blocks put()
calls, which is not
consistent with the expected behavior for binary semaphores. The path
expression is not wrong, it just specifies a behavior that is stronger than
that of the usual binary-semaphore specification (A semaphore satisfying the
expected specification doesn't satisfy the path expression; a semaphore
satisfying the path expression does satisfy the expected specification.)
This page last modified on 12 August 2003.