home *** CD-ROM | disk | FTP | other *** search
- Submitted-by: willcox@urbana.mcd.mot.com (David A Willcox)
-
- This is in reply to a posting on 25 Feb by salevin@dal.mobile.com.
- Unfortunately, my system has long since purged that message, and I
- have only a hard copy.
-
- The original message said, in effect, that POSIX requires read to
- return -1 and set errno to EINTR if it is interrupted by a job control
- signal before transferring any data. This caused the poster's csh job
- (which contained a pipeline) to die when suspended.
-
- This issue was discussed today at the POSIX.1 meeting. While I think
- that I have captured the consensus of the group, you should take this
- as my personal opinion, and not anything official from the IEEE. If
- you want something official, you'll have to ask the IEEE for an
- interpretation request. (This certainly is not an official Motorola
- position, either.)
-
- I think that the failure described here is due to a misunderstanding
- of the phrase "interrupted by a signal." The description of read() does
- contain the sentence:
-
- If a read() is interrupted by a signal before it reads any data, it
- shall return -1 with errno set to [EINTR].
-
- However, see subclause 3.3.1.4, which describes the effects of signals
- on other functions, and contains:
-
- If the action of the signal is to invoke a signal-catching
- function, ... the original function is said to be *interrupted* by
- the signal.
-
- This, and other wording in 3.3.1.4 makes it clear, I think, that the
- bit about EINTR in the description of read() does not apply to job
- control signals that were not caught.
-
- I'd suggest that the original poster point this out to the vendor's
- customer support people.
-
- David A. Willcox "Just say 'NO' to universal drug testing"
- Motorola MCG - Urbana UUCP: ...!uiucuxc!udc!willcox
- 1101 E. University Ave. INET: willcox@urbana.mcd.mot.com
- Urbana, IL 61801 FONE: 217-384-8534
-
-
- Volume-Number: Volume 31, Number 40
-
-