US 7,478,210 B2
Memory reclamation with optimistic concurrency
Bratin Saha, San Jose, Calif. (US); Richard L. Hudson, Florence, Mass. (US); and Ali-Reza Adl-tabatabai, Santa Clara, Calif. (US)
Assigned to Intel Corporation, Santa Clara, Calif. (US)
Filed on Jun. 09, 2006, as Appl. No. 11/450,616.
Prior Publication US 2007/0288708 A1, Dec. 13, 2007
Int. Cl. G06F 12/12 (2006.01)
U.S. Cl. 711—159  [711/160; 707/206] 19 Claims
OG exemplary drawing
 
1. A method comprising:
starting a transaction of a processing thread;
allocating a memory object to the transaction in a software transactional memory;
storing an epoch value for the start of the transaction in a thread local storage associated with the transaction;
comparing the stored epoch value with stored epoch values associated with other transactions to determine whether the stored epoch value is earlier than the stored epoch values associated the other transactions;
tentatively freeing the allocated memory object in the software transactional memory based on the comparison, the tentative freeing restricting objects started after the object is tentatively freed from having any pointers into the object, the object having pointers into it from at least one transaction;
detecting when all transactions that are outstanding at the time an object is tentatively freed have ended; and
actually freeing the object based on the detection.