In one aspect of the invention is a method to synchronize accesses by
multiple threads to shared resources. The method entails a first thread
entering a processing queue to contend for a lock on a shared resource.
If a second thread exists, where the second thread is currently executing
code, then the first thread may execute the critical section of code if
the second thread is not currently executing the critical section; or if
the second thread is currently executing the critical section of code,
then the first thread may continue to contend for ownership of the shared
resource until the second thread relinquishes ownership of the shared
resource, or until a yield count expires.