Method and system for enhanced thread synchronization and coordination
First Claim
1. A machine implemented method comprising:
- checking to determine if a lock associated with a protected resource is available;
if the lock is determined to be available, attempting to acquire the lock;
if the lock is not available or the attempt to acquire the lock fails, then;
configuring a hardware monitor to detect a release of the lock,configuring an asynchronous call to a procedure, andasynchronously entering the procedure responsive to detection of the lock release.
1 Assignment
0 Petitions
Accused Products
Abstract
Synchronization and communication between concurrent software threads is enhanced. An attempt may be made to acquire a lock associated with a resource. If the lock is not available and/or the attempt fails, a hardware monitor may be configured to detect release of the lock. An asynchronous procedure call responsive to detection of the lock release facilitates another attempt to acquire the lock. Alternatively, upon acquiring the lock a hardware monitor may be configured to detect any attempt to acquire the lock. Access to the protected resource may be maintained until an asynchronous procedure call responsive to the detection of such an attempt. Then state may be restored to a safe point for releasing the lock. Alternatively, processing of reader lock requests may be adapted to a turnstile processing when no writer holds or waits for the lock and then adapted to read-write lock processing whenever a writer requests the lock.
-
Citations
28 Claims
-
1. A machine implemented method comprising:
-
checking to determine if a lock associated with a protected resource is available; if the lock is determined to be available, attempting to acquire the lock; if the lock is not available or the attempt to acquire the lock fails, then; configuring a hardware monitor to detect a release of the lock, configuring an asynchronous call to a procedure, and asynchronously entering the procedure responsive to detection of the lock release. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A machine implemented method comprising:
-
attempting to acquire a lock associated with a protected resource; if the attempt to acquire the lock succeeds, then; configuring a hardware monitor to detect an attempt to acquire the lock, configuring an asynchronous call to a procedure; and accessing the protected resource, asynchronously entering the procedure responsive to detection of the attempt to acquire the lock. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A machine implemented method comprising:
-
when no writer thread holds a write-lock and no writer thread waits for a read-lock release, then adapt to turnstile processing reader lock requests and reader unlock requests; and when a writer thread holds the write-lock or a writer thread waits for the read-lock release, process any reader unlock requests until no reader thread holds the read-lock, then adapt to read-write processing writer lock and unlock request. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A multithreaded computing system comprising:
-
an coherent addressable memory; a processor comprising a configurable event monitor coupled with said coherent addressable memory to cause a procedure call in response to a memory event; a program stored in said coherent addressable memory and executable by said processor, said program comprising a synchronized portion protected by a memory variable, a first execution thread having a synchronization procedure and a second execution thread, said first execution thread to enable said configurable event monitor to detect that the memory variable was accessed by said second execution thread and to cause an asynchronous call to said synchronization procedure in response. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification