One embodiment of the present invention provides a system for releasing a
memory location from transactional program execution. The system operates
by executing a sequence of instructions during transactional program
execution, wherein memory locations involved in the transactional program
execution are monitored to detect interfering accesses from other
threads, and wherein changes made during transactional execution are not
committed until transactional execution completes without encountering an
interfering data access from another thread. Upon encountering a release
instruction for a memory location during the transactional program
execution, the system modifies state information within the processor to
release the memory location from monitoring. The system also executes a
commit-and-start-new-transaction instruction, wherein the
commit-and-start-new-transaction instruction atomically commits the
transaction's stores, thereby removing them from the transaction's write
set while the transaction's read set remains unaffected.