Re: Q: SEGSEGV && uc_mcontext->ip (Was: Signal delivery order)

From: Linus Torvalds
Date: Tue Mar 17 2009 - 12:03:47 EST




On Tue, 17 Mar 2009, Gábor Melis wrote:
>
> As an application developer what I'd like to have is this: synchronously
> generated signals are delivered before asynchronously generated ones.

I agree that it would be nice, but quite frankly, it's simply not how
signals work. It would be a reasonably invasive change, and you wouldn't
really be able to rely on it anyway since most kernels don't work that
way.

What you might be able to do instead is to walk signal frames backwards by
hand. IOW, accept the fact that sometimes signals end up being nested, but
then you could try to find the right frame by just looking at them.

And your trick of comparing 'info->si_ip' with 'context->uc_mcontext->ip'
is pretty good, and lets the code itself walk the signal frames by just
depending on the fault happening again.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/