Chcę ustawić wywołanie funkcji (lub funkcji lambda), aby stało się automatycznie po wyjściu bieżącego wątku, ale nie widzę żadnej możliwości to działa z std::thread
, chyba że przejmiemy całe zadanie tworzenia wątku lub ręcznie upewnię się, że każdy wątek wywołuje określoną funkcję, którą zawsze dostarczam jako ostatnią operację.Wywoływanie funkcji automatycznie na wyjściu std :: thread w C++ 11
Zasadniczo, chcę funkcji, której prototyp może przypominać coś takiego:
on_thread_exit(const std::function<void()> &func);
Które wykonać cokolwiek setup było konieczne w celu zapewnienia, że dana funkcja została automatycznie wywoływana, gdy wątek, który nazywa on_thread_exit ostatecznie kończy, a bez potrzeby wywoływania jawnie konkretnych funkcji podczas tworzenia lub kończenia wątku.
to ma znaczenie który wątek wywołuje wywołania zwrotnego? Czy można to zrobić za pomocą wątku pomocnika, zaraz po wyjściu wątku wyzwalającego? –