Killing threads

Daniel Franke dfoxfranke at gmail.com
Tue Sep 27 19:34:46 UTC 2016


On 9/27/16, Gary E. Miller <gem at rellim.com> wrote:
> On Tue, 27 Sep 2016 15:16:55 -0400
> Daniel Franke <dfoxfranke at gmail.com> wrote:
>> But in that case, what's the point of using signals?
>
> So the user can also niely terminate a thread.  Or so a system shutdown
> can nicely terminate the thread.Or if the msater thread already crashed.
> Or the thread is stuck in an infinite loop and not checking the shutdown
> condition variable.  Or the thread is stuck in a system call that is
> not returning.  Or...

In the first two cases you just want to kill the entire process. So
the user (or initd) sends a signal to the process, and the signal
handler calls exit(2) and every thread terminates at once, thus
there's no concern about inconsistency because the whole heap is
getting deallocated. In all the latter cases, you might *wish* you
could just kill one thread, but nonetheless killing the whole process
is the only safe course of action because your heap is trashed and
there's no reliable way to repair it.


More information about the devel mailing list