std::stop_source:: request_stop
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
|
stop_source::request_stop
|
||||
| Observers | ||||
| Non-member functions | ||||
| Helper tags | ||||
|
bool
request_stop
(
)
noexcept
;
|
(seit C++20) | |
Stellt eine Stopp-Anforderung an den Stop-Zustand, falls das
stop_source
Objekt einen Stop-Zustand besitzt und noch keine Stopp-Anforderung gestellt wurde.
Die Entscheidung wird atomar getroffen, und falls ein Stopp angefordert wurde, wird der Stopp-Zustand atomar aktualisiert, um Race Conditions zu vermeiden, sodass:
-
stop_requested
(
)
und
stop_possible
(
)
können gleichzeitig auf anderen
stop_tokens undstop_sources desselben Stop-Zustands aufgerufen werden; -
request_stop
(
)
kann gleichzeitig auf anderen
stop_source-Objekten aufgerufen werden, wobei nur eines tatsächlich die Stop-Anforderung durchführt.
Siehe jedoch den Abschnitt Hinweise.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
true
wenn das
stop_source
-Objekt einen Stop-Zustand hat und dieser Aufruf eine Stop-Anfrage ausgelöst hat, andernfalls
false
.
Nachbedingungen
stop_possible ( ) ist false oder stop_requested ( ) ist true .
Hinweise
Falls die
request_stop
(
)
tatsächlich eine Stoppanforderung ausgibt (d.h.
true
zurückgibt), dann werden alle für denselben assoziierten Stoppzustand registrierten
stop_callback
s synchron auf demselben Thread aufgerufen, auf dem
request_stop
(
)
ausgeführt wurde. Wenn ein Aufruf eines Callbacks durch eine Exception beendet wird, wird
std::terminate
aufgerufen.
Wenn das
stop_source
-Objekt einen Stop-Zustand besitzt, aber bereits eine Stop-Anforderung gestellt wurde, gibt diese Funktion
false
zurück. Es besteht jedoch keine Garantie, dass ein anderes
stop_source
-Objekt, das gerade (erfolgreich) einen Stop angefordert hat, sich nicht noch in der Mitte des Aufrufs einer
stop_callback
-Funktion befindet.
Wenn die
request_stop
(
)
tatsächlich eine Stoppanforderung ausgibt (d.h.
true
zurückgibt), dann werden alle Bedingungsvariablen des Basistyps
std::condition_variable_any
, die mit einem unterbrechbaren Wait für
stop_token
s registriert sind, die dem Stop-Zustand der
stop_source
zugeordnet sind, benachrichtigt.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |