OnixS C++ ICE Binary Order Entry Handler 1.1.1
API Documentation
Loading...
Searching...
No Matches
Scheduler Threading Model

The Scheduler does not create any threads. This means that event dispatching must be performed by the user, either in the main thread or in a dedicated worker thread, by repeatedly calling OnixS::ICE::BOE::Scheduling::SessionScheduler::dispatchEvents() in a loop. The following example demonstrates how to run event dispatching in the main thread:

Session externalThreadSession(stack, SessionType::BUS, settings, nullptr);
SessionSchedulerOptions schedulerOptions;
SessionScheduler scheduler(schedulerOptions);
scheduler.add(&externalThreadSession, "ScheduleId", "ConnectionId");
bool finished = false;
// Dispatching events..
while(!finished)
{
stack.dispatchEvents();
scheduler.dispatchEvents();
}
scheduler.remove(&externalThreadSession);
while(!stack.isQuiescent())
stack.dispatchEvents();
Note
The Scheduler supports sessions with all threading models.

See Also