Component-specific disclaimable locks
First Claim
Patent Images
1. A computer-implemented method comprising:
- tracking back out activity among a plurality of threads to release a disclaimable lock having a plurality of orderable locks that are arranged in a list of orderable locks, wherein tracking the back out activity includes, for a disclaiming thread among the plurality of threads,receiving a request to release the disclaimable lock from the disclaiming thread,creating an orderable lock in response to the request to release the disclaimable lock,adding the orderable lock to a list of orderable locks associated with the disclaimable lock as a first orderable lock,designating the orderable lock as a current lock,storing a recursion count of the disclaiming thread, andissuing a back out event at least to enable the disclaiming thread to release the disclaimable lock,receiving a request to reclaim the disclaimable lock from a current thread among the plurality of threads;
determining whether the current lock of the disclaimable lock is associated with the current thread if the disclaimable lock is not held by another thread, wherein the current lock is associated with the current thread when the current thread is the disclaiming thread;
removing, if the current lock of the disclaimable lock is associated with the current thread, the first orderable lock from the list of orderable locks associated with the disclaimable lock;
newly designating a second orderable lock as the current lock;
reinstating a recursion count of the current thread;
granting acquisition of the current lock to the current thread based on the determination; and
issuing a reclamation event.
0 Assignments
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
10 Claims
-
1. A computer-implemented method comprising:
-
tracking back out activity among a plurality of threads to release a disclaimable lock having a plurality of orderable locks that are arranged in a list of orderable locks, wherein tracking the back out activity includes, for a disclaiming thread among the plurality of threads, receiving a request to release the disclaimable lock from the disclaiming thread, creating an orderable lock in response to the request to release the disclaimable lock, adding the orderable lock to a list of orderable locks associated with the disclaimable lock as a first orderable lock, designating the orderable lock as a current lock, storing a recursion count of the disclaiming thread, and issuing a back out event at least to enable the disclaiming thread to release the disclaimable lock, receiving a request to reclaim the disclaimable lock from a current thread among the plurality of threads; determining whether the current lock of the disclaimable lock is associated with the current thread if the disclaimable lock is not held by another thread, wherein the current lock is associated with the current thread when the current thread is the disclaiming thread; removing, if the current lock of the disclaimable lock is associated with the current thread, the first orderable lock from the list of orderable locks associated with the disclaimable lock; newly designating a second orderable lock as the current lock; reinstating a recursion count of the current thread; granting acquisition of the current lock to the current thread based on the determination; and issuing a reclamation event. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method comprising:
-
identifying a disclaimable lock having a plurality of orderable locks that are arranged in a list of orderable locks; tracking back out activity among a plurality of threads to release the disclaimable lock and a shared resource, wherein for each disclaiming thread among the plurality of threads the tracking back out activity includes; receiving a request to back out of the disclaimable lock from the disclaiming thread, creating an orderable lock in response the request to back out of the disclaimable lock, adding the orderable lock to the list of orderable locks associated with the disclaimable lock as a first orderable lock, designating the first orderable lock as a current lock, and issuing a back out event at least to enable the disclaiming thread to release the disclaimable lock; and ordering reclamation activity among the plurality of threads to reclaim the disclaimable lock and the shared resource, wherein ordering the reclamation activity includes; receiving a request to reclaim the disclaimable lock from a current thread determining whether a current lock of the disclaimable lock is associated with the current thread if the disclaimable lock is not held by another thread, removing, if the current lock of the disclaimable lock is associated with the current thread, the current lock from the list of orderable locks associated with the disclaimable lock, newly designating a second orderable lock as the current lock, granting acquisition of the current lock to the current thread based on the determination, and issuing a reclamation event. - View Dependent Claims (6, 7, 8, 9, 10)
-
Specification