diff options
| author | Xavier Leroy <xavier.leroy@inria.fr> | 2007-02-25 12:38:36 +0000 |
|---|---|---|
| committer | Xavier Leroy <xavier.leroy@inria.fr> | 2007-02-25 12:38:36 +0000 |
| commit | 160e4050d82aa38be7f68dd33e4b82b86f09ab39 (patch) | |
| tree | 1c50e3e43bc46bf050ec47183f4c5ee7ddfcff5f /byterun/io.c | |
| parent | e254ca38e003e7fa3b0989a706d4605bdcd47382 (diff) | |
| download | ocaml-160e4050d82aa38be7f68dd33e4b82b86f09ab39.tar.gz | |
Raise Sys_blocked_io only in I/O operations that return EAGAIN/EWOULDBLOCK. Other, non-I/O related system calls can also return EAGAIN (e.g. in Sys.command); these should raise Sys_error, not Sys_blocked_io
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7919 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/io.c')
| -rw-r--r-- | byterun/io.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/byterun/io.c b/byterun/io.c index a261adbc9e..f8f186e50b 100644 --- a/byterun/io.c +++ b/byterun/io.c @@ -163,7 +163,7 @@ again: n = 1; goto again; } } - if (retcode == -1) caml_sys_error(NO_ARG); + if (retcode == -1) caml_sys_io_error(NO_ARG); return retcode; } @@ -266,7 +266,7 @@ CAMLexport int caml_do_read(int fd, char *p, unsigned int n) retcode = read(fd, p, n); caml_leave_blocking_section(); } while (retcode == -1 && errno == EINTR); - if (retcode == -1) caml_sys_error(NO_ARG); + if (retcode == -1) caml_sys_io_error(NO_ARG); return retcode; } |
