Freigeben über


IUMSCompletionList-Struktur

Stellt eine UMS-Vervollständigungsliste dar. Wenn ein UMS-Thread blockiert wird, wird der festgelegte Planungskontext des Planers weitergeleitet, um zu entscheiden, was für den Stamm des zugrunde liegenden virtuellen Prozessors geplant werden soll, während der ursprüngliche Thread blockiert ist. Wenn die Blockierung des ursprünglichen Threads aufgehoben wird, stellt das Betriebssystem ihn in die Warteschlange für die Vervollständigungsliste, auf die über diese Schnittstelle zugegriffen werden kann. Der Planer kann die Vervollständigungsliste für den festgelegten Planungskontext oder eine beliebige andere Stelle abfragen, in der er nach Arbeit sucht.

Syntax

struct IUMSCompletionList;

Member

Öffentliche Methoden

Name Beschreibung
IUMSCompletionList::GetUnblockNotifications Ruft eine Kette von IUMSUnblockNotification Schnittstellen ab, die Ausführungskontexte darstellen, deren zugeordnete Threadproxys seit dem letzten Aufruf dieser Methode aufgehoben wurden.

Hinweise

Ein Scheduler muss außerordentlich sorgfältig darauf achten, welche Aktionen ausgeführt werden, nachdem diese Schnittstelle verwendet wurde, um Elemente aus der Vervollständigungsliste zu entqueuen. Die Elemente sollten in der Liste der ausführungsfähigen Kontexte des Zeitplans platziert werden und so bald wie möglich allgemein zugänglich sein. Es ist völlig möglich, dass einem der entqueuierten Elemente der Besitz einer willkürlichen Sperre erteilt wurde. Der Scheduler kann keine beliebigen Funktionsaufrufe ausführen, die zwischen dem Aufruf der Dequeue-Elemente und der Platzierung dieser Elemente in einer Liste blockieren können, auf die im Allgemeinen innerhalb des Schedulers zugegriffen werden kann.

Vererbungshierarchie

IUMSCompletionList

Anforderungen

Kopfzeile: concrtrm.h

Namespace: Parallelität

IUMSCompletionList::GetUnblockNotifications-Methode

Ruft eine Kette von IUMSUnblockNotification Schnittstellen ab, die Ausführungskontexte darstellen, deren zugeordnete Threadproxys seit dem letzten Aufruf dieser Methode aufgehoben wurden.

virtual IUMSUnblockNotification *GetUnblockNotifications() = 0;

Rückgabewert

Eine Kette von IUMSUnblockNotification Schnittstellen.

Hinweise

Die zurückgegebenen Benachrichtigungen sind ungültig, sobald die Ausführungskontexte neu geplant wurden.

Siehe auch

Concurrency-Namespace
IUMSScheduler-Struktur
IUMSUnblockNotification-Struktur