Hinweis: Dies ist keine Frage zu std::condition_variable::wait_for()
. Ich weiß, dass das spurlos aufwachen kann.
Das Verhalten meines Programms schlägt vor, dass die Antwort auf diese Frage Ja ist, aber die STL-Dokumentation ist für den Fall der Bedingung_Variable ziemlich klar. Zumindest bei cppreference.com scheint die richtige Antwort für this_thread Nein zu sein.
Compiler ist gcc 4.8.1, falls dies ein Defekt ist.
Die relevanten Abschnitte des C ++ Standards (Absätze [thread.thread.this] / 7-9) erwähnen nichts von falschen Aufweckvorgängen für std::this_thread::sleep_for
, anders als z.B. für std::condition_variable::wait_for
.
%Vor%7 Effekte : Blockiert den aufrufenden Thread für das relative Zeitlimit (30.2.4), das von
rel_time
angegeben wurde.8 Synchronisation : Keine.
9 Wirf : Timeout-bezogene Ausnahmen (30.2.4).
Dies bedeutet, dass das Verhalten, das Sie beobachten, nicht konform ist.
Tags und Links c++ c++11 stl sleep thread-sleep