Bonjour,

Je fais le code suivant afin d'intercepter par example les erreurs de segmentation.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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