UMS Worker Threads and Completion Lists
A UMS worker thread is created by calling ums_pthread_create()
and
specifying a completion list.
A completion list is created by calling the
create_ums_completion_list()
function. A completion list receives UMS
worker threads that have completed execution in the kernel and are ready to
run. Only the system can enqueue worker threads to a completion list.
New UMS worker threads are automatically enqueued to the completion list
specified when the threads were created.
Each UMS scheduler thread is associated with a single completion list. However, the same completion list can be associated with any number of UMS scheduler threads, and a scheduler thread can retrieve UMS contexts from any completion list for which it has a pointer.