IUMSCompletionList Structure

Represents a UMS completion list. When a UMS thread blocks, the scheduler's designated scheduling context is dispatched in order to make a decision of what to schedule on the underlying virtual processor root while the original thread is blocked. When the original thread unblocks, the operating system queues it to the completion list which is accessible through this interface. The scheduler can query the completion list on the designated scheduling context or any other place it searches for work.

struct IUMSCompletionList;


Public Methods



IUMSCompletionList::GetUnblockNotifications Method

Retrieves a chain of IUMSUnblockNotification interfaces representing execution contexts whose associated thread proxies have unblocked since the last time this method was invoked.


A scheduler must be extraordinarily careful about what actions are performed after utilizing this interface to dequeue items from the completion list. The items should be placed on the scheduler's list of runnable contexts and be generally accessible as soon as possible. It is entirely possible that one of the dequeued items has been given ownership of an arbitrary lock. The scheduler can make no arbitrary function calls that may block between the call to dequeue items and the placement of those items on a list that can be generally accessed from within the scheduler.

Inheritance Hierarchy



Header: concrtrm.h

Namespace: concurrency

See Also


concurrency Namespace

IUMSScheduler Structure

IUMSUnblockNotification Structure