FreeBSD Bugzilla – Attachment 150244 Details for
Bug 195721
Real Time signal, delivery ordering
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
Proposed path
patch-signal.txt (text/plain), 1.02 KB, created by
David CARLIER
on 2014-12-05 20:09:48 UTC
(
hide
)
Description:
Proposed path
Filename:
MIME Type:
Creator:
David CARLIER
Created:
2014-12-05 20:09:48 UTC
Size:
1.02 KB
patch
obsolete
>diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c >index a5ec747..80a19fb 100644 >--- a/sys/kern/kern_sig.c >+++ b/sys/kern/kern_sig.c >@@ -622,7 +622,7 @@ sig_ffs(sigset_t *set) > > for (i = 0; i < _SIG_WORDS; i++) > if (set->__bits[i]) >- return (ffs(set->__bits[i]) + (i * 32)); >+ return (fls(set->__bits[i]) + (i * 32)); > return (0); > } >diff --git a/sys/sys/signalvar.h b/sys/sys/signalvar.h >index f7fcaa9..73f4998 100644 >--- a/sys/sys/signalvar.h >+++ b/sys/sys/signalvar.h >@@ -108,7 +108,13 @@ typedef void __osiginfohandler_t(int, osiginfo_t *, void *); > * sigset_t manipulation macros. > */ > #define SIGADDSET(set, signo) \ >- ((set).__bits[_SIG_WORD(signo)] |= _SIG_BIT(signo)) >+ do { \ >+ if ((set).__bits[_SIG_WORD(signo)] == ~0U) { \ >+ ((set).__bits[_SIG_WORD(signo)] = _SIG_BIT(signo)); \ >+ } else { \ >+ ((set).__bits[_SIG_WORD(signo)] |= _SIG_BIT(signo)); \ >+ } \ >+ } while (0) > > #define SIGDELSET(set, signo) \ > ((set).__bits[_SIG_WORD(signo)] &= ~_SIG_BIT(signo))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 195721
: 150244