Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

multi-threaded signal handling

  1. In unix, If a multi-threaded process was sent a signal, which thread will be the one to execute the handling function?

  2. if it is a multi-cpu machine, more than 1 thread is running at the same time. which thread will be the on to run the signal handling function?

like image 836
Leon Avatar asked Mar 31 '11 15:03

Leon


1 Answers

According to man 7 signal, all threads in the process share the same signal handler, and if a signal is delivered to a process with multiple threads that have not blocked the signal, one of them is arbitrarily chosen to receive it.

Having a multi-CPU machine will not change these semantics.

like image 143
Jonathan Avatar answered Nov 16 '22 04:11

Jonathan