Defect Report concerning: IEEE Std. 1003.1-1996, ISO/IEC 9945-1:1996 - C API
Clause: page 90, clause 3.3.84, ll 1295-1296
PASC Interpretation Ref: pasc-1003.1-119
Topic: sigtimedwait and EAGAIN error


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  #119

 _____________________________________________________________________________

	Interpretation Number:	XXXX
	Topic:			sigtimedwait and EAGAIN error
	Relevant Sections:	page 90, clause 3.3.84, ll 1295-1296


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

	Date: 2000 Nov 29

Address details:

The Open Group
Apex Plaza 
Forbury Road
Reading 
RG1 1AX

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

 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):

3

Error=1 , Omission=2, Clarification=3

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

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

page 90, clause 3.3.84, ll 1295-1296

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

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


Austin Group XSHd1 ERN 345 stated the following problem
(to be clear these are the words of the originator of the ERN):


ETIMEDOUT is used for pthread_cond_timedwait() in exactly the same
context. Normally EAGAIN is reserved for use when some resource 
limit temporarily causes failure of an API, while ETIMEDOUT is 
specified for a user-specified timeout.
Also, all of the realtime amendments in progress use ETIMEDOUT 
for this.  I believe there is either an interp request or an 
unresolved  objection against .1a calling for this to be made 
consistent.

Action:
Consider changing this to ETIMEDOUT unless the potential for 
breakage is too great.

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

11  Solution proposed by the submitter (optional):

The standard is clear in its requirement for EAGAIN. 
The issue is whether the standard has a defect.

In hindsight ETIMEDOUT would seem a more appropriate error,
however would that break applications?



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




Interpretation response
------------------------
The standard clearly states the requirements ,and conforming implementations 
must conform to this. To change this would break backwards compatibility.
No change is required.

Rationale
-------------
There is very little reason one would use sigtimedwait() without intending
to check for timeout, so we would expect most users of this interface
to be broken by the proposed change.

Whilst consistency is desirable, there appears to be no way to make
a change without breaking source compatibility.



Forwarded to Interpretations group: 29 Nov 2000
Proposed resolution: 15 Feb 2001
Finalised: 15 Mar 2001