Patent ID: 7454753

Claim:
A subsystem for managing semaphores for a multi-threaded processing system comprising: a memory having a plurality of storage areas; each of the storage areas including a first part for storing at least one first indicia for identifying at least one unique semaphore from a plurality of semaphores utilized by the multi-threaded processing system and a second part for storing a second indicia for indicating a locked status for a semaphore identified by the stored first indicia; first logic circuit responsive to a semaphore lock request from a thread for examining the contents of all of the storage areas to determine if a locked semaphore corresponding to a requested semaphore is stored in any of the storage areas; second logic circuit responsive to the first logic circuit for storing the requested semaphore in a storage area along with a locked status if the requested semaphore is not found in the search and notifying the requesting thread that the request is granted; third logic circuit responsive to the first logic circuit for rejecting the request if the requested semaphore is found in the memory and is locked by the requesting thread; fourth logic circuit responsive to the first and third logic circuits for holding the semaphore request in abeyance if the requested semaphore is found locked in the memory but is not locked by the requesting thread, the fourth logic circuit completing the semaphore lock request with an indication that no semaphore was locked if the request includes a set time out enable bit.