Zerstörungsreihenfolge, wenn jthread ein Klassenmitglied ist
Posted: 14 Jan 2025, 11:21
Ich habe eine Klasse, die die Synchronisierung einiger Threads übernimmt.
In C++ werden Member-Destruktoren in umgekehrter Reihenfolge aufgerufen, sodass der Destruktor für cv vor dem Destruktor für Threads aufgerufen wird. Da der Destruktor für Threads die Jthreadss verbindet, gibt es eine Zeitspanne, in der cv und mut zerstört wurden und die Jthreadss noch ausgeführt werden . Ist das ein Problem?
Code: Select all
class ThreadHandler {
std::vector threads;
std::mutex mut;
std::condition_variable cv;
int some_int;
// some other synchronization related variables
};