[Bug 1629] New: sigsuspend not following POSIX spec
bugzilla-daemon at rtems.org
bugzilla-daemon at rtems.org
Mon Jul 26 10:24:05 UTC 2010
https://www.rtems.org/bugzilla/show_bug.cgi?id=1629
Summary: sigsuspend not following POSIX spec
Product: RTEMS
Version: HEAD
Platform: All
OS/Version: RTEMS
Status: NEW
Severity: normal
Priority: P3
Component: cpukit
AssignedTo: joel.sherrill at oarcorp.com
ReportedBy: vinutheraj at gmail.com
CC: vinutheraj at gmail.com
Created an attachment (id=911)
--> (https://www.rtems.org/bugzilla/attachment.cgi?id=911)
patch for sigsuspend.c
The current sigsuspend implementation is not does not follow the POSIX spec -
http://www.opengroup.org/onlinepubs/009695399/functions/sigsuspend.html.
First, the spec wants the signal mask to be replaced. At present, the union of
the new signal mask is taken with old signal mask.
Then, sigsuspend is implemented with the help of sigtimedwait. The set of
signals sigtimedwait waits upon in the implementation consists of all the
signals. This is wrong because sigtimedwait, will successfully return, if any
of the signals in the set is pending, which is not the case with sigsuspend.
sigsuspend should only return if any of the non-blocked signals are caught, or
a signal causes termination of the process. So sigtimedwait should only wait on
the non-blocked signals.
I have attached a patch with the necessary changes.
--
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the bugs
mailing list