Interception de std::signal dans un QThread
Bonjour,
Je fais le code suivant afin d'intercepter par example les erreurs de segmentation.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
void handle_signal(int param)
{
printf("%d \n",(int)QThread::currentThread());
printf("%d \n",(int)QApplication::instance()->thread());
}
//j'ecrit dans mon thread _GUI de Qt
std::signal (SIGSEGV,handle_signal);
//j'ecrit dans un Qthread lancer depuis mon thread _GUI de Qt
std::signal (SIGSEGV,handle_signal); |
Ensuite je fait un "raise(SIGSEGV)" depuis mon thred_GUI ou depuis mon Thread secondaire
Donc sous windows et linux suivant l'origine de mon erreur j'ai bien un currentThread différent ou égal au Thread GUI
Mais sous MacOS, quelque soit l'origine le currentThread est toujours idenetique au Thread_GUI, comme si la fonction "handle_signal" s'executait toujours dans le thread_GUI.
Quelqu'un aurait-il une explication sur ce comportement différent et plutôt étrange sous macOS
Merci d'avance