Yes, I see now, thanks.
Let me clarify why I started this thread. I'm thinking how we can "improve"
fatal signals. Let's look at this patch
http://marc.info/?l=linux-kernel&m=120498888702466
(under discussion, let's suppose it will be accepted). In short: with this
patch the thread-specific SIGKILL shutdowns the whole thread group early on
signal delivery, the same way like the group-wide SIGKILL does.
For various reasons we can't currently do the same for sig_kernel_coredump()
signals. But, when rlim[RLIMIT_CORE] == 0, we don't actually need coredumping?
So, we could do something like
- if (!sig_kernel_coredump(sig)) {
+ if (!sig_kernel_coredump(sig) || !signal->rlim[RLIMIT_CORE]) {
// shutdown the whole group,
// send SIGKILL to each thread
to speedup the processing of fatal coredump signals (to clarify: this issue
is minor, just for example. and the change above is not exactly right).
However, this breaks print_fatal_signal(), because with this change nobody
will dequeue the "right" signal to report, it was transformed to the "global"
SIGKILL.
So, if we change the behaviour of thread-specific coredump signals, then
we should "fix" print_fatal_signal(). At least, now I know which signals
should be reported.
Thanks!
Oleg.
--