Giriş
Tam olarak nerede ve nasıl kullanıldığını anlamadım. Thread içinde atılan exception'ı ana thread'e taşımak için şöyle yapılır.
Tam olarak nerede ve nasıl kullanıldığını anlamadım. Thread içinde atılan exception'ı ana thread'e taşımak için şöyle yapılır.
void thread_function(std::exception_ptr* exception)
try {
throw std::runtime_error("test exception");
}
catch(std::exception& e) {
*exception = std::current_exception();
}
int main() {
// Thread creation.
std::exception_ptr other_thread_exception;
std::thread t{thread_function, &other_thread_exception};
// Thread termination.
t.join();
if(other_thread_exception)
std::rethrow_exception(other_thread_exception);
}
Hiç yorum yok:
Yorum Gönder