See
using the thread->kill() feature on linux. When it comes to threads, you must put the signal handler into the thread code block. The main thread receives the signal first, then internally passes it on to each thread, so each thread must have a handler.