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.fra...@t-online.de>
> > Reviewed-by:
> > Signed-off-by: Takashi Yano <takashi.y...@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.y...@nifty.ne.jp>

Reply via email to