The unlock operation is modified to check the contention bit of the currently executing thread. This check is only done when a lock is actually released (as locks are recursive), after releasing the lock.
When the lock of object is released by thread , and if the contention bit of thread is set, then (1) thread acquires its own contention lock, and (2) iterates over all the elements of its tuple linked list. For each tuple (, ), if (), thread is simply signaled. If ( ), the lock of object is inflated13(if it is thin), then thread is signaled. Finally, (3) thread empties its tuple linked list, clears its contention bit, and releases its contention lock.