Use of the information contained in this unapproved document is at your own risk
.Last update: 30 March,1998
1003.1c-95 #6
_____________________________________________________________________________
Interpretation Number: XXXX
Topic: 6.7.1.1
Relevant Sections: _POSIX_PRIORITIZED_IO
Interpretation Request: (Defect Report)
-----------------------
From: "Frank Prindle" <prindle@voicenet.com>
Date: Tue, 28 May 1996 08:52:51 +0000
FOR IEEE STD 1003.1c-1995:
1c1. Subsection 6.7.1.1:
The first sentence of the fifth paragraph of section 6.7.1.1 says "If
{_POSIX_PRIORITIZED_IO} and {_POSIX_PRIORITY_SCHEDULING} are defined,
then asynchronous I/O is queued in priority order, with the priority
of each asynchronous operation based on the current scheduling priority
of the calling process." The statement is ambiguous when the calling
process is multi-threaded.
If a multi-threaded process initiates async I/O requests from threads
of various priorities, what is the "priority of the requesting process"
for each such request - the priority of the requesting thread, or
something else? This is ill-defined, as a multi-threaded process may
have several priorities.
Assuming that the interpretation answers "the priority of the requesting
thread" to the above question, I suggest that the word "process" in the
sentence be changed to "thread". Another possibility is
that it is the priority of the "initial" thread started when the process
was created, but this creates problems for async I/O requests from other
threads subsequently created with a higher priority, since they cannot
utilize their higher priority to advantage.
Interpretation response
------------------------
The standard is clear: the priority is that of the process as set by
sched_setparam or other mechanisms. Even in the presence of threads
this remains a 'well defined' term and value. A conforming
implementation shall use that value in the calculation of the I/O
priority.
Rationale
-------------
None.
Forwarded to Interpretations group: May 28 1996
Finalised: July 10th 1996.