]> granicus.if.org Git - python/commitdiff
Issue #23836: Use _Py_write_noraise() to retry on EINTR in trip_signal() of
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 1 Apr 2015 16:35:22 +0000 (18:35 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 1 Apr 2015 16:35:22 +0000 (18:35 +0200)
signalmodule.c

Modules/signalmodule.c

index a1fda3eb315a24c2f68a3898fac5c3d6827c00b2..cc13194dfaca6187ba39fa1b5c9bcc3ed0aa756c 100644 (file)
@@ -263,9 +263,10 @@ trip_signal(int sig_num)
 #endif
         {
             byte = (unsigned char)sig_num;
-            do {
-                rc = write(fd, &byte, 1);
-            } while (rc < 0 && errno == EINTR);
+
+            /* _Py_write_noraise() retries write() if write() is interrupted by
+               a signal (fails with EINTR). */
+            rc = _Py_write_noraise(fd, &byte, 1);
 
             if (rc < 0) {
                 Py_AddPendingCall(report_wakeup_write_error,