Mercurial > hg > octave-lyh > gnulib-hg
changeset 15336:5ba0229c806b
Comments about EINTR.
* lib/safe-read.h: Explain the purpose of this module.
* lib/safe-write.h: Likewise.
* doc/posix-functions/read.texi: Mention EINTR and the 'safe-read'
module.
* doc/posix-functions/write.texi: Mention EINTR and the 'safe-write'
module.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 03 Jul 2011 13:36:43 +0200 |
parents | a14c39b78516 |
children | 787a6021ecd5 |
files | ChangeLog doc/posix-functions/read.texi doc/posix-functions/write.texi lib/safe-read.h lib/safe-write.h |
diffstat | 5 files changed, 51 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2011-07-03 Bruno Haible <bruno@clisp.org> + + Comments about EINTR. + * lib/safe-read.h: Explain the purpose of this module. + * lib/safe-write.h: Likewise. + * doc/posix-functions/read.texi: Mention EINTR and the 'safe-read' + module. + * doc/posix-functions/write.texi: Mention EINTR and the 'safe-write' + module. + Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>. + 2011-06-30 Paul Eggert <eggert@cs.ucla.edu> xnanosleep: Rewrite to use new dtotimespec module.
--- a/doc/posix-functions/read.texi +++ b/doc/posix-functions/read.texi @@ -17,4 +17,11 @@ Portability problems not fixed by Gnulib: @itemize +@item +This function may fail with error @code{EINTR}, even in programs that don't +install any signal handlers, on some platforms: +MacOS X 10.5. @end itemize + +For handling @code{EINTR}, Gnulib provides a module @samp{safe-read} with a +function @code{safe_read}.
--- a/doc/posix-functions/write.texi +++ b/doc/posix-functions/write.texi @@ -32,4 +32,11 @@ Portability problems not fixed by Gnulib: @itemize +@item +This function may fail with error @code{EINTR}, even in programs that don't +install any signal handlers, on some platforms: +MacOS X 10.5. @end itemize + +For handling @code{EINTR}, Gnulib provides a module @samp{safe-write} with a +function @code{safe_write}.
--- a/lib/safe-read.h +++ b/lib/safe-read.h @@ -14,6 +14,19 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ +/* Some system calls may be interrupted and fail with errno = EINTR in the + following situations: + - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user + types Ctrl-Z) on some platforms: MacOS X. + - The process receives a signal for which a signal handler was installed + with sigaction() with an sa_flags field that does not contain + SA_RESTART. + - The process receives a signal for which a signal handler was installed + with signal() and for which no call to siginterrupt(sig,0) was done, + on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris. + + This module provides a wrapper around read() that handles EINTR. */ + #include <stddef.h> #ifdef __cplusplus
--- a/lib/safe-write.h +++ b/lib/safe-write.h @@ -14,6 +14,19 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ +/* Some system calls may be interrupted and fail with errno = EINTR in the + following situations: + - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user + types Ctrl-Z) on some platforms: MacOS X. + - The process receives a signal for which a signal handler was installed + with sigaction() with an sa_flags field that does not contain + SA_RESTART. + - The process receives a signal for which a signal handler was installed + with signal() and for which no call to siginterrupt(sig,0) was done, + on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris. + + This module provides a wrapper around write() that handles EINTR. */ + #include <stddef.h> #define SAFE_WRITE_ERROR ((size_t) -1)