Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Aug 2016 14:27:32 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 212173] SIGINT is only delivered once with sigqueue_test:sigqueue_rt
Message-ID:  <bug-212173-8-FKGtJBL7vk@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-212173-8@https.bugs.freebsd.org/bugzilla/>
References:  <bug-212173-8@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D212173

--- Comment #5 from Konstantin Belousov <kib@FreeBSD.org> ---
If my reading of the code is right, the count of actually delivered signals=
 is
7, which coincides with the signals[] array size.  In your printfs, signo 2=
 =3D=3D
SIGINT is listed twice, as it should be.  The ndelivered value is 6, it is =
set
to the return value of sigorder() and sigorder() returned 6.

sigorder() seems to try to eliminate duplicates for signals < SIGRTMIN, whi=
ch
means that two SIGINTs are merged into one entry in the 'ordered' array.  T=
his
is exactly what you see.

OTOH, FreeBSD behaviour is to treat all signals as realtime while there is =
no
mem shortage and siginfo can be allocated.  In particular, signals < SIGRTM=
IN
are not collapsed when queued more than once.

I.e. the test behaviour is exactly opposite to what you claimed in the bug
description.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-212173-8-FKGtJBL7vk>