The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Jan. 06, 1998
Filed:
Mar. 25, 1996
David W Connelly, Los Altos, CA (US);
Patrick P Chan, Palo Alto, CA (US);
Sun Microsystems, Inc., Mountain View, CA (US);
Abstract
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a resource allocation subsystem includes an initialization procedure for initializing monitors, a notify procedure and a wait procedure. Each monitor has an associated event data structure denoting the status of the monitor as Signaled or Unsignaled. Each monitor also stores a waiters value indicating how many threads are waiting on the monitor, a tickets value indicating how many of the threads are to receive notifications, and an epoch counter value. The notify procedure updates any specified monitor to the Signaled status, updates the specified monitor's tickets value to indicate how many waiting threads are to receive notifications, and updates the epoch counter to indicate an epoch value associated with the updating of the specified monitor's status to Signaled. The wait procedure blocks execution of a calling thread until a specified monitor's status is updated to Signaled and the monitor's epoch information indicates an epoch value distinct from the epoch value when the calling thread called the wait procedure. The wait procedure unblocks the calling thread when monitor's tickets value is non-zero, and decrements the tickets value to indicate that the calling thread has consumed one ticket.