Patent ID: 8856801
Filing Date: 2014-10-07
Classification: G06F

Abstract:
1. A method of executing normally interruptible threads of a process in a non-preemptive manner, comprising: in response to a first entry associated with a first message for a first thread reaching a head of a run queue, receiving, by the first thread, a first wake-up signal, wherein the first thread is a serialized stem pthread; in response to receiving the wake-up signal, waiting, by the first thread, for a global lock; in response to the first thread receiving the global lock, retrieving, by the first thread, the first message from an associated message queue; processing, by the first thread, the retrieved first message; in response to completing the processing of the first message, transmitting, by the first thread, a second wake-up signal to a second thread whose associated entry is next in the run queue, wherein the second thread is a serialized pthread that requires access to a data structure that is shared with the first thread; releasing, by the first thread, the global lock following the transmitting of the second wake-up signal; checking, by the first thread, the associated message queue for a second message for the first thread; and in response to the associated message queue including the second message, queuing a second entry associated with the second message to an end of the run queue.