about summary refs log tree commit diff
path: root/src/unistd
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-02-20 18:35:05 -0500
committerRich Felker <dalias@aerifal.cx>2015-02-20 18:35:05 -0500
commit6bea5dc69892cd9ff0c222474e7dd468c29dfa75 (patch)
tree4bd46137fc54fb225e84cecc9918f82e6c590549 /src/unistd
parent36d8e972231c397194e513691d09f7d489de0a62 (diff)
downloadmusl-6bea5dc69892cd9ff0c222474e7dd468c29dfa75.tar.gz
musl-6bea5dc69892cd9ff0c222474e7dd468c29dfa75.tar.xz
musl-6bea5dc69892cd9ff0c222474e7dd468c29dfa75.zip
map interruption of close by signal to success rather than EINPROGRESS
commit 82dc1e2e783815e00a90cd3f681436a80d54a314 addressed the
resolution of Austin Group issue 529, which requires close to leave
the fd open when failing with EINTR, by returning the newly defined
error code EINPROGRESS. this turns out to be a bad idea, though, since
legacy applications not aware of the new specification are likely to
interpret any error from close except EINTR as a hard failure.
Diffstat (limited to 'src/unistd')
-rw-r--r--src/unistd/close.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/unistd/close.c b/src/unistd/close.c
index 2f1eabd7..fa3c6cab 100644
--- a/src/unistd/close.c
+++ b/src/unistd/close.c
@@ -14,6 +14,6 @@ int close(int fd)
 {
 	fd = __aio_close(fd);
 	int r = __syscall_cp(SYS_close, fd);
-	if (r == -EINTR) r = -EINPROGRESS;
+	if (r == -EINTR) r = 0;
 	return __syscall_ret(r);
 }