[PATCH] Cygwin: signa: Redesign signal queue handling
Takashi Yano
takashi.yano@nifty.ne.jp
Mon Mar 10 03:58:12 GMT 2025
On Sun, 9 Mar 2025 13:28:26 +0100
Christian Franke wrote:
> Takashi Yano wrote:
> > ...
> > With this patch prevents all signals from that issues by redesigning
> > the signal queue, Only the exception is the case that the process is
> > in the PID_STOPPED state. In this case, SIGCONT/SIGKILL should be
> > processed prior to the other signals in the queue.
> >
> > Addresses: https://cygwin.com/pipermail/cygwin/2025-March/257582.html
> > Fixes: 7ac6173643b1 ("(pending_signals): New class.")
> > Reported by: Christian Franke <Christian.Franke@t-online.de>
> > Reviewed-by:
> > Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
> > ...
> > void
> > pending_signals::add (sigpacket& pack)
> > {
> > ...
> > + if (q->si.si_signo == pack.si.si_signo)
> > + q->usecount++;
> > ...
> >
>
> This should possibly also compare the si.si_sigval fields. Otherwise
> values would be lost if the same real-time signal is issued multiple
> times with different value parameters.
>
> The queuing might also be incorrect for real-time signals. Linux
> signal(7) says:
> "If different real-time signals are sent to a process, they are
> delivered starting with the lowest-numbered signal."
Thanks for the advice. I'll submit v2 patch in a several hours.
Please check.
--
Takashi Yano <takashi.yano@nifty.ne.jp>
More information about the Cygwin-patches
mailing list