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