Defect Report concerning: IEEE Std. 1003.1-1996, ISO/IEC 9945-1:1996 - C API
Clause: Subclause 3.3.1, P70 & subclause 3.3.8.1, P80 (sigtimedwait())
PASC Interpretation Ref: pasc-1003.1-85
Topic: signal.h and namespace


This is an unapproved interpretation of PASC 1003.1-1996, ISO/IEC 9945-1:1996 - C API.

Use of the information contained in this unapproved document is at your own risk.

Last update: 10 April,2001


								1003.1-96  #85

 _____________________________________________________________________________

	Interpretation Number:	XXXX
	Topic:			signal.h and namespace
	Relevant Sections:	Subclause 3.3.1, P70 & subclause 3.3.8.1, P80 (sigtimedwait())

Interpretation Request: (Defect Report)
-----------------------

	Date: Wed, 25 Feb 1998 11:22:12 -0600
	From: Don.Cragun@eng.sun.com

------------------------------------------------------------------------ 

 7  Defect Report concerning (number and title of International Standard
    or DIS final text, if applicable): 

IEEE Std 1003.1-1996 (incorporates 1003.1-1990, 1003.1b-1993, 1003.1c-1995, 1003.1i-1995) (ISO 9945-1:1996)

------------------------------------------------------------------------ 

 8  Qualifier (e.g. error, omission, clarification required):

2

Error=1 , Omission=2, Clarification=3

------------------------------------------------------------------------ 

 9  References in document (e.g. page, clause, figure, and/or table
    numbers):

Subclause 3.3.1, P70 & subclause 3.3.8.1, P80 (sigtimedwait())

------------------------------------------------------------------------ 

10  Nature of defect (complete, concise explanation of the perceived
    problem):


POSIX defines the sigtimedwait() function, which
takes a const struct timespec * as one of it's arguments. This
function is declared in the <signal.h> header. However, the
synopsis for sigtimedwait() does not specify inclusion of
<time.h> which is where the timespec structure is defined.

Likewise, the sigtimedwait() description does not state any
requirements for defining struct timespec, nor does it allow
for the visibility of symbols in <time.h> when including
<signal.h>. To include <signal.h> and not define struct
timespec will result in compilers generating a warning about
a dubious tag declaration for struct timespec.

Though POSIX references <time.h> in the Cross-
References and See Also sections respectively, and talks
about the timespec structure in the text, there is no indication
as to how one should go about making this visible.


------------------------------------------------------------------------ 

11  Solution proposed by the submitter (optional):

Add a paragraph after POSIX.1-1996, P70, L50 (description of
<signal.h>):
	Inclusion of the <signal.h> header may make visible symbols
	allowed by this part of ISO/IEC 9945 to be in the <time.h>
	header.

(This matches the wording used on POSIX.1-1996, P319 for <mqueue.h>.)



------------------------------------------------------------------------ 



Interpretation response
------------------------
The standard does not speak to this issue, and as such no 
conformance distinction can be made between alternative implementations 
based on this. This is being referred to the sponsor.

Rationale
-------------
There appear to be some omissions in the specification.
It is recommend that a future revision address this issue.  

Forwarded to Interpretations group: 26 Feb 1998
Finalised: 30 March 1998