By exploiting an early release facility that may be provided by certain
transactional memory designs, we allow for transaction software
constructs that wait on removal (or satisfaction) of a condition that
would otherwise result in transaction abort. Absent exploitation of such
a such a facility, the act of checking the condition would typically
introduce a corresponding location into the read set of the transaction,
and a subsequent modification of that location that removed (or
satisfied) the condition, would result in abortion of the blocked
transaction. By exploiting an early release facility such as described
herein, a transaction may release the location (or locations)
corresponding the condition, retry, and once the transient condition is
removed (or satisfied), complete and commit. In this way, computation
effort may be conserved while still employing a conceptually simple and
convenient coordination facility.