Re: [PATCH 1/3] signals: sigqueue_free: don't free sigqueue if it is queued

From: Roland McGrath
Date: Thu May 22 2008 - 21:42:46 EST


> So. Let's suppose that (say) SIGHUP is pending, and the posix timer
> sends SIGHUP too. In that case the new SIGHUP is added, and if the
> previous one was infoless the new one "hides" it: collect_signal()
> won't see 2 distinct signals, it will find only 1 signal and clear
> the bit in sigpending->signal.

That is correct behavior. Signals < SIGRTMIN do not queue. (POSIX says
it's implementation-defined whether they do, and in Linux they don't.)
When a signal does not queue, it's unspecified whether the the one that
is ever actually seen is the first one or the last one (or any in between),
so the siginfo_t details showing the second one in your example is fine.


Thanks,
Roland
--
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/