The ability to make a choice over multiway synchronisations (COMS) has
always been an integral part of CSP. However, it is something that has been
conspicuous by its absence from many concurrent languages, limiting their
expressive power. Implementation of a 2-phase commit protocol to resolve
such choice can result in large overheads, caused by synchronisation offers
having to be withdrawn.
The recent Oracle (single-phase) algorithm resolves COMS efficiently,
for shared memory concurrency at least. However, the Oracle only deals
with arbitrary choice and does not obviously extend to
prioritised choice (where we assume the priorities of the
participating processes are not in conflict). PICOMS is a proposed
efficient method for resolving COMS that honours non-conflicting priorities,
with only a modest increase in complexity over the Oracle method.