A
system and method for a synchronous task scheduler. The synchronous task scheduler may be used with a CORBA Gateway between CORBA-based
client manager applications and an enterprise manager. The CORBA Gateway may include components such as an Event Gateway which manages events from managed objects, and a Request Gateway which manages requests and responses of managed objects. The Event Gateway and the Request Gateway may be designed as multi-threaded systems. A
thread pool may be used to increase efficiency and performance of the CORBA Gateway. To ensure ordered delivery of events or replies to the CORBA gateway clients in a multi-threaded environment using a
thread pool, a synchronous task scheduler may be used. There may be a synchronous task scheduler associated with each
client manager to preserve the
chronology of messages sent to each. The synchronous task scheduler may maintain an internal message
list, and deliver one message at a time from that internal
list. The synchronous task scheduler may hold a reference to a
thread pool and use that thread
pool to deliver messages. When a message is scheduled, the synchronous task scheduler may check if any message is already being delivered. If no prior message is currently being delivered, an available thread may be assigned from the thread
pool for delivery of the message and the scheduler may initiate delivery of the message. If a prior message is being delivered, it may enqueue the message in the message
list. Then, when the prior
message delivery is completed, the scheduler may dequeue the message, assign another thread from the thread
pool, and initiate delivery of the message. This may continue until the message list is empty.