US 7,577,712 B1
Efficient event completion in UDAPL
Nitin R. Ramannavar, Lubbock, Tex. (US); and Neelakanth M. Nadgir, San Jose, Calif. (US)
Assigned to Sun Microsystems, Inc., Santa Clara, Calif. (US)
Filed on Mar. 31, 2006, as Appl. No. 11/395,745.
Int. Cl. G06F 15/16 (2006.01)
U.S. Cl. 709—207  [711/101] 21 Claims
OG exemplary drawing
 
1. A machine-implemented method for obtaining event messages, the method comprising:
(a) if receipt of at least one event message is expected, then determining whether an event message queue is empty;
(b) in response to a determination that the event message queue is not empty, a processor performing steps comprising:
reading at least one event message from the event message queue; and
repeating at least step (a); and
(c) in response to a determination that the event message queue is empty, the processor performing steps comprising:
blocking until specified criteria have been satisfied; and
after the specified criteria have been satisfied, repeating at least step (a);
wherein at least one condition from a set of conditions is true, wherein the set of conditions consists of:
(1) wherein the step of blocking until the specified criteria have been satisfied comprises invoking a User Direct Access Programming Library (UDAPL) dat_evd_wait method and passing, as parameters to the UDAPL dat_evd_wait method, both (i) a value that indicates a quantity of event messages that a process still expects to receive, and (ii) a pointer to a variable into which the UDAPL dat_evd_wait method will insert a quantity of event messages that are in the event message queue when the UDAPL dat_evd_wait method returns;
(2) wherein the step of reading at least one event message from the event message queue comprises invoking a User Direct Access Programming Library (UDAPL) dat_evd_dequeue method; and
(3) wherein the step of determining whether the event message queue is empty comprises invoking a User Direct Access Programming Library (UDAPL) dat_evd_dequeue method at least a specified number of times before blocking, and wherein the specified number of times is at least two.