Can SIGTERM to main process kill the detached threads?

Hi,

I am stuck up with a strange problem.
I am writing an application - a kinda tracker that reads data from memcache and invokes theads to process each record of the memcache.

I dont want to join all my threads because my tracker should poll the cache in regular intervals say sum 300 seconds without waiting for the child thread completion.

To accomplish the above task, I created a detachable tracker thread for each poll of memcache which in turn creates worker threads n joins them.

so my main tracker thread need not wait for the detached thread and can start polling the cache at a stipulated time.

Now, when i tried to give a "kill <process_id>", i observed that only my main thread is killed whereas the detached thread and worker threads are still running!!! :frowning:

Ideally , a kill to main should quit all my detached threads too...ne ideas/thoughts on how to handle this?? Kindly help

kill command is for a process ( which in turn is the main thread ) and not for sub threads created out of main thread.

Shouldn't the main thread have a signal handler to kill all the threads it had created ( if it has to ) before exiting ?

Not enough details.
A signal that terminates a single multithreaded process, as matrix notes, should terminate all threads.
That being said I don't know what the default result for SIGTERM is in your environment
Signals and threads are always a problem. If there is a way to avoid this kind of situation I'd suggest trying hard to do it.

What it sounds like (naively) is that you need to ignore all signals in tracker and workers and use thread conditionals (events)..for pthreads: man -k pthread_cond.