Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for using finalizable objects in transactions in a software transactional memory system operating on a computing device, comprising the steps of: providing a software transactional memory system in a managed code environment comprising a garbage collector that reclaims memory used by a transaction, the software transactional memory system controls access to shared memory in a concurrent computing system; providing a to-be-finalized set for the transaction in the software transactional memory system that supports allocation of finalizable objects inside the transaction to indicate to the garbage collector that a particular one or more of the objects are eligible for finalization; allocating a finalizable object within the transaction; placing an object into the to-be-finalized set for the transaction upon allocation of the finalizable object; determining whether the transaction is to be committed; if the transaction is to be committed, determining whether the transaction is a closed, flattened or parallel nesting transaction; and if the transaction is a closed, flattened or parallel nesting transaction, copying contents of the to-be-finalized set for the transaction to a to-be-finalized set of a parent transaction of the transaction if the transaction is not a closed, flattened or parallel nesting transaction, traversing contents of the to-be-finalized set for the transaction setting an indicator to indicate the finalizable object is eligible for finalization by the garbage collector; if the transaction is not to be committed, determining whether the transaction is to be rolled back; and, if the transaction is to be rolled back, discarding contents of the to-be-finalized set for the transaction.
2. The method of claim 1 , wherein if a request is made from the transaction to suppress a finalization operation for a particular object created within the transaction, the particular object is removed from the to-be-finalized set for the transaction.
3. The method of claim 1 , wherein if a request is made from the transaction to re-register for a finalize operation for a particular object created within the transaction, the particular object is added to the to-be-finalized set for the transaction.
4. The method of claim 1 , wherein if a request is made from the transaction to suppress a finalization operation for a particular object that was not created within the transaction, then a REDO action results.
5. The method of claim 1 , wherein if a request is made from the transaction to re-register for a finalize operation for a particular object that was not created within the transaction, then a REDO action results.
6. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 1 .
7. A computer-readable medium having computer-executable instructions for causing a computer to perform steps comprising: provide a software transactional memory system in a managed code environment comprising a garbage collector that reclaims memory used by a transaction, the software transactional memory system supports allocation of finalizable objects inside a transaction; provide a to-be-finalized set for a transaction; allocate a finalizable object within the transaction; place an object into the to-be-finalized set for the transaction upon allocation of the finalizable object within the transaction; determining whether the transaction is to be committed; if the transaction is to be committed, determining whether the transaction is a closed, flattened or parallel nesting transaction; and if the transaction is a closed, flattened or parallel nesting transaction, copying contents of the to-be-finalized set for the transaction to a to-be-finalized set of a parent transaction of the transaction if the transaction is not a closed, flattened or parallel nesting transaction, traversing contents of the to-be-finalized set for the transaction setting an indicator to indicate the finalizable object is eligible for finalization by the garbage collector; if the transaction is not to be committed, determining whether the transaction is to be rolled back; and, if the transaction is to be rolled back, discarding contents of the to-be-finalized set for the transaction.
8. A method for using finalizable objects in transactions in a software transactional memory system operating on a computing device, comprising the steps of: providing a software transactional memory system in a managed code environment comprising a garbage collector that reclaims memory used by a transaction, the software transactional memory system supports allocation of finalizable objects inside a transaction; creating a to-be-finalized set for a transaction; whenever a finalizable object is allocated while a transaction is alive, placing the finalizable object into the to-be-finalized set for the transaction; and if the transaction is ready to commit, determining whether the transaction is a closed, flattened or parallel nesting transaction; if the transaction is a closed, flattened or parallel nesting transaction, copying contents of the to-be-finalized set for the transaction to a to-be-finalized set of a parent transaction of the transaction; and if the transaction is an open nested or non-nested transaction, then traversing the to-be-finalized set and setting a finalize indicator for each object to indicate to the garbage collector that each object is eligible to finalize if the transaction is not a closed, flattened or parallel nesting transaction, traversing contents of the to-be-finalized set for the transaction setting an indicator to indicate the finalizable object is eligible for finalization by the garbage collector; if the transaction is not ready to be committed, determining whether the transaction is to be rolled back; and, if the transaction is to be rolled back, discarding contents of the to-be-finalized set for the transaction.
9. The method of claim 8 , further comprising: if the transaction is ready to commit, performing at least one other task associated with the commit.
10. The method of claim 8 , further comprising: if the transaction is ready to rollback, performing at least one other task associated with the rollback.
11. The method of claim 8 , wherein the finalize indicator is set to a value of True for each object in the to-be-finalized set to indicate when each object is ready to be finalized.
12. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 8 .
Unknown
January 19, 2010
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.