Hi, I have a code now that starts fork (with few childs). Each child runs few threads. What I want to do is to - catch a ctrl + c from user by the parent (this part is working for me) , send a signal to the children that kills immediatly the threads and do some more code (write to DB, etc..) - this part is half working for me. the part that working is the children actually catches the signal ( I'm using USR1 signal ) , and hte part that doesnt work for me - us that it catches it only when the threads end. if not threads run in the fork children - the form catches the signal immediatly. Any ideas guys ? this is how I send the USR1 to children :

Now the signal (CTRL+C) comes from the user / CLI , then it catched by the father (going to ctrl_c_handler function) , and then ctrl_c_handler function suppose to send the USR1 signal to the threads - but the thread doesn't catch it.

In addition - in the child (testProcess), before starting the thread , I have another USR1 handler , which caught - only after the thread is ending.