Method, computer program product, and apparatus for efficiently dispatching threads in a multi-threaded communication library which become runnable by completion of an event. Each thread has a thread-specific structure containing a "ready flag" and a POSIX thread condition variable unique to that thread. Each message is assigned a "handle". When a thread waits for a message, thread-specific structure is attached to the message handle being waited on, and the thread is enqueued, waiting for its condition variable to be signaled. When a message completes, the message matching logic sets the ready flag to READY, and causes the queue to be examined. The queue manager scans the queue of waiting threads, and sends a thread awakening condition signal to one of the threads with its ready flag set to READY. The queue manager can implement any desired policy, including First-In-First-Out (FIFO), Last-In-First-Out (LIFO), or some other thread priority scheduling policy. This ensures that the thread which is awakened has the highest priority message to be processed, and enhances the efficiency of message delivery. The priority of the message to be processed is computed based on the overall state of the communication subsystem.

 
Web www.patentalert.com

< Method and system for managing resources in a distributed environment that has an associated object

< Real-time multi-modal business transformation interaction

> System and method for automatically tuning a multiprocessor computer system

> Dynamic selection and interposition of multimedia files in real-time communications

~ 00202