Namensräume
Varianten
Aktionen

std::promise<R>::set_exception_at_thread_exit

Von cppreference.com
< cpp‎ | thread‎ | promise
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
 
void set_exception_at_thread_exit( std::exception_ptr p );
(seit C++11)

Speichert den Exception-Pointer p im Shared State, ohne den Zustand sofort als bereit zu markieren. Der Zustand wird als bereit markiert, wenn der aktuelle Thread beendet wird, nachdem alle Variablen mit Thread-lokaler Speicherungsdauer zerstört wurden.

Die Operation verhält sich so, als ob set_value, set_exception, set_value_at_thread_exit und set_exception_at_thread_exit während der Aktualisierung des Promise-Objekts eine einzelne mit dem Promise-Objekt assoziierte Mutex sperren.

Eine Exception wird geworfen, wenn kein Shared State vorhanden ist oder der Shared State bereits einen Wert oder eine Exception speichert.

Aufrufe dieser Funktion führen keine Datenrennen mit Aufrufen von get_future ein (daher müssen sie nicht miteinander synchronisiert werden).

Inhalt

[edit] Parameter

p - Exception-Pointer, der gespeichert werden soll. Das Verhalten ist undefiniert, wenn p nullptr ist.

[edit] Rückgabewert

(keine)

[edit] Exceptions

std::future_error unter folgenden Bedingungen

  • *this hat keinen geteilten Zustand. Der Fehlercode wird auf no_state gesetzt.
  • Der gemeinsame Zustand speichert bereits einen Wert oder eine Ausnahme. Der Fehlercode wird auf promise_already_satisfied gesetzt.

[edit] Beispiel

[edit] Siehe auch

setzt das Ergebnis, um eine Ausnahme anzuzeigen
(public member function) [bearbeiten]