Namensräume
Varianten
Aktionen

std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume

Von cppreference.com
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
 
 
Mitglied anderer Spezialisierungen
void operator()() const;
void resume() const;
(1) (seit C++20)
Mitglied der Spezialisierung std::coroutine_handle<std::noop_coroutine_promise>
constexpr void operator()() const noexcept;
constexpr void resume() const noexcept;
(2) (seit C++20)
1) Setzt die Ausführung des Coroutinen, auf das *this verweist, fort, oder tut nichts, wenn die Coroutine eine No-Op-Coroutine ist.
2) Tut nichts.

Das Verhalten ist undefiniert, wenn *this nicht auf eine suspendierte Coroutine verweist oder die Coroutine keine No-Op-Coroutine ist und an ihrem finalen Suspendpunkt suspendiert wurde. Eine gleichzeitige Wiederaufnahme der Coroutine kann zu einem Datenrennen führen.

Die Wiederaufnahme einer Coroutine auf einem anderen Ausführungsagenten als dem, auf dem sie suspendiert wurde, hat implementierungsabhängiges Verhalten, es sei denn, jeder Ausführungsagent ist entweder ein Thread, der durch std::thread oder std::jthread dargestellt wird, oder ist der Thread, der main ausführt.

Inhalt

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Ausnahmen

Wenn eine Ausnahme aus der Ausführung der Coroutine geworfen wird, wird die Ausnahme abgefangen und unhandled_exception für das Promise-Objekt der Coroutine aufgerufen. Wenn der Aufruf von unhandled_exception eine Ausnahme wirft oder erneut wirft, wird diese Ausnahme weitergegeben.

[bearbeiten] Hinweise

Eine Coroutine, die auf einem anderen Ausführungsagenten wiederaufgenommen wird, sollte es vermeiden, sich durchgehend auf eine konsistente Thread-Identität zu verlassen, z. B. das Halten eines Mutex-Objekts über einen Suspendpunkt hinaus.

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

zerstört eine Coroutine
(öffentliche Memberfunktion) [bearbeiten]