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>