7650371

Finalizable Object Usage in Software Transactions

PublishedJanuary 19, 2010
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
12 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

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

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

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

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

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

6. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 1 .

7

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

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

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

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

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

12. A computer-readable medium having computer-executable instructions for causing a computer to perform the steps recited in claim 8 .

Patent Metadata

Filing Date

Unknown

Publication Date

January 19, 2010

Inventors

John Joseph Duffy
David Detlefs
Michael M. Magruder

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “FINALIZABLE OBJECT USAGE IN SOFTWARE TRANSACTIONS” (7650371). https://patentable.app/patents/7650371

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.