瀏覽代碼

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.
Rich Felker 10 年之前
父節點
當前提交
6bea5dc698
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/unistd/close.c

+ 1 - 1
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);
 }