Patent ID: 7703098

Claim:
A computer-implemented method, comprising: a first thread executing on a first processor to perform a shared-memory transaction using a transactional memory mechanism, wherein said performing the shared-memory transaction comprises: the first thread reading contents of a shared-memory location, wherein in response to said reading, the transactional memory mechanism adds the shared-memory location to a read-set of the transaction and wherein the transactional memory mechanism is configured to monitor the read-set of the transaction for conflict with one or more other threads; the first thread determining that the contents of the shared-memory location do not satisfy a given condition, and in response, releasing the shared-memory location previously introduced into the read set of the transaction, wherein said releasing does not include aborting or committing the transaction, and in response to said releasing, the transactional memory mechanism removes the shared-memory location from the read-set of the transaction; after the releasing, a second thread executing on a second processor modifying the contents of the shared-memory location; after the modifying, the first thread reading the modified contents and determining that they satisfy the given condition, and in response, executing a section of code of the transaction, wherein said reading the modified contents reintroduces the shared-memory location into the read set; subsequent to said executing the section of code, committing the transaction.