Orderable locks for disclaimable locks
First Claim
Patent Images
1. A computer program product comprising:
- a non-transitory computer readable storage medium; and
computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to;
create an orderable lock for a disclaimable lock in response to a request to release the disclaimable lock, wherein the request is made by a disclaiming thread that holds the disclaimable lock;
instruct the disclaiming thread to release the disclaimable lock when the orderable lock is created;
cause one or more threads that are waiting for the disclaimable lock to attempt to acquire the orderable lock when the disclaimable lock is released;
determine, if the disclaimable lock is not held by a thread, whether a current thread that attempts to acquire the orderable lock is associated with the orderable lock, wherein the current thread is associated with the orderable lock if it is the disclaiming thread; and
grant acquisition of the orderable lock to the current thread if the current thread is associated with the orderable lock.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods of protecting a shared resource in a multi-threaded execution environment in which threads are permitted to transfer control between different software components, for any of which a disclaimable lock having a plurality of orderable locks can be identified. Back out activity can be tracked among a plurality of threads with respect to the disclaimable lock and the shared resource, and reclamation activity among the plurality of threads may be ordered with respect to the disclaimable lock and the shared resource.
-
Citations
21 Claims
-
1. A computer program product comprising:
-
a non-transitory computer readable storage medium; and computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to; create an orderable lock for a disclaimable lock in response to a request to release the disclaimable lock, wherein the request is made by a disclaiming thread that holds the disclaimable lock; instruct the disclaiming thread to release the disclaimable lock when the orderable lock is created; cause one or more threads that are waiting for the disclaimable lock to attempt to acquire the orderable lock when the disclaimable lock is released; determine, if the disclaimable lock is not held by a thread, whether a current thread that attempts to acquire the orderable lock is associated with the orderable lock, wherein the current thread is associated with the orderable lock if it is the disclaiming thread; and grant acquisition of the orderable lock to the current thread if the current thread is associated with the orderable lock. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product comprising:
-
a non-transitory computer readable storage medium; and computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to; create an orderable lock for a disclaimable lock in response to a request to release the disclaimable lock, wherein the request is made by a disclaiming thread that holds the disclaimable lock; instruct the disclaiming thread to release the disclaimable lock when the orderable lock is created; and cause one or more threads that are waiting for the disclaimable lock to attempt to acquire the orderable lock when the disclaimable lock is released. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computer program product comprising:
-
a non-transitory computer readable storage medium; and computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to; cause one or more threads that are waiting for a disclaimable lock to attempt to acquire an orderable lock when the disclaimable lock is released determine, if the disclaimable lock is not held by a thread, whether a current thread that attempts to acquire the orderable lock for the disclaimable lock is associated with the orderable lock, wherein the current thread is associated with the orderable lock if it is a disclaiming thread that issued a request to release the disclaimable lock and cause the creation of the orderable lock; and grant acquisition of the orderable lock to the current thread if the current thread is associated with the orderable lock. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A computer program product comprising:
-
a non-transitory computer readable storage medium; and computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to; create an orderable lock for a disclaimable lock in response to a request to release the disclaimable lock, wherein the request is made by a disclaiming thread that holds the disclaimable lock; instruct the disclaiming thread to release the disclaimable lock when the orderable lock is created; and designate the orderable lock as a current orderable lock to be acquired.
-
-
19. A computer program product comprising:
-
a non-transitory computer readable storage medium; and computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to; create an orderable lock for a disclaimable lock in response to a request to release the disclaimable lock, wherein the request is made by a disclaiming thread that holds the disclaimable lock; instruct the disclaiming thread to release the disclaimable lock when the orderable lock is created; and store the orderable lock as a first orderable lock in a list of orderable locks for the disclaimable lock.
-
-
20. A computer program product comprising:
-
a non-transitory computer readable storage medium; and computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to; create an orderable lock for a disclaimable lock in response to a request to release the disclaimable lock, wherein the request is made by a disclaiming thread that holds the disclaimable lock; instruct the disclaiming thread to release the disclaimable lock when the orderable lock is created; and designate another orderable lock as a current orderable lock in a list of orderable locks for the disclaimable lock if a current thread is associated with the orderable lock.
-
-
21. A computer program product comprising:
-
a non-transitory computer readable storage medium; and computer usable code stored on the non-transitory computer readable storage medium, where, if executed by a processor, the computer usable code causes a computer to; create an orderable lock for a disclaimable lock in response to a request to release the disclaimable lock, wherein the request is made by a disclaiming thread that holds the disclaimable lock; instruct the disclaiming thread to release the disclaimable lock when the orderable lock is created; and remove the orderable lock from a list of orderable locks for the disclaimable lock if a current thread is associated with the orderable lock.
-
Specification