Comments about EINTR.
authorBruno Haible <bruno@clisp.org>
Sun, 3 Jul 2011 11:36:43 +0000 (13:36 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 3 Jul 2011 11:36:43 +0000 (13:36 +0200)
* 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>.

ChangeLog
doc/posix-functions/read.texi
doc/posix-functions/write.texi
lib/safe-read.h
lib/safe-write.h

index fcc2e6efe39537f61cab14dbef0a4a362e04e45c..79b10beccaf5da25110616b4b2284d7e53ac7dc9 100644 (file)
--- 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.
index 2f5312de8403f9fd6203d87bb98f0ff8e2b3bf0f..2b5aeb2e44dbd9f49e6463f6546400b8142311e2 100644 (file)
@@ -17,4 +17,11 @@ mingw.
 
 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}.
index 604507d30c7eb5a7ede30e832cd7046af50cdfce..e1059173399861fd7252e55b5557b300b4951813 100644 (file)
@@ -32,4 +32,11 @@ mingw.
 
 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}.
index 1c49c8f33232f4a79e3657d381656b68c51cda1a..7174de7e125945c03de0754c88f13628195b8bb4 100644 (file)
    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
index 1f1bcd272b6afc317d1e240463468cea92f36a6b..07c84ee5cf5ed302e7dfad91ac6be9eac2a24e66 100644 (file)
    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)