UMS Thread Execution
A newly created UMS worker thread is queued to the specified completion list and does not begin running until the application’s UMS scheduler selects it to run. This differs from non-UMS threads, which the system scheduler automatically schedules to run.
The scheduler runs a worker thread by calling execute_ums_thread()
with the worker thread’s UMS context. A UMS worker thread runs until it yields
by calling the ums_thread_yield()
function or terminates.