Email List: Xaustin-review-lX
[All Lists]

Defect in XSH sighold

To: yyyyyyyyyyyyyyy@xxxxxxxxxxxxx
Subject: Defect in XSH sighold
From: Geoff Clare <yyy@xxxxxxxxxxxxx>
Date: Mon, 14 Jun 2004 17:17:47 +0100
@ page 1376 line 43040 section sighold objection [gwc sigpause and threads]

Problem:

Defect code :  1. Error

There are some problems with how sigpause() is specified with
respect to threads.

The main issue is that the sighold() page (on which sigpause() is
described) says "Use of any of these functions is unspecified in a
multi-threaded process", and yet sigpause() is included in the list
in 2.9.5.2 Cancellation Points of functions for which a cancellation
point shall occur.  If the use of sigpause() in a multi-threaded
process is unspecified, there is no point in requiring that it
contains a cancellation point.

Under the DESCRIPTION heading on the sighold() page it says, "The
sigpause() function shall remove sig from the calling process' signal
mask and suspend the calling process until a signal is received".
Since it uses "process" here instead of "thread", this is consistent
with the use of sigpause() in multi-threaded processes being
unspecified.  However, later under the RETURN VALUE heading it uses
"thread" instead of "process": "The sigpause() function shall suspend
execution of the thread until a signal is received".

Action:

Either update the sighold() page appropriately so that the behaviour
of sigpause() in multi-threaded processes is specified, or change
"thread" to "process" under the RETURN VALUE heading and move
sigpause() from the "shall" list to the "may" list in 2.9.5.2
Cancellation Points.

<Prev in Thread] Current Thread [Next in Thread>