]> granicus.if.org Git - php/commitdiff
Fixed phpdbg exit unexpected after signal SIGCONT on OS X
authorReeze Xia <reeze@php.net>
Tue, 26 May 2015 14:04:50 +0000 (22:04 +0800)
committerReeze Xia <reeze@php.net>
Tue, 26 May 2015 14:04:50 +0000 (22:04 +0800)
sapi/phpdbg/phpdbg_io.c

index 1f004fbae1f14b5256cccada845b67780845ed36..58ea06e299cf896e90ebd76bc82fcb7f0413323f 100644 (file)
@@ -178,11 +178,19 @@ PHPDBG_API int phpdbg_send_bytes(int sock, const char *ptr, int len) {
 
 
 PHPDBG_API int phpdbg_mixed_read(int sock, char *ptr, int len, int tmo) {
+       int ret;
+
        if (PHPDBG_G(flags) & PHPDBG_IS_REMOTE) {
                return phpdbg_consume_bytes(sock, ptr, len, tmo);
        }
 
-       return read(sock, ptr, len);
+       ret = read(sock, ptr, len);
+       if (ret == (size_t)-1 && errno == EINTR) {
+               /* Read was interrupted, retry once */
+               ret = read(sock, ptr, len);
+       }
+
+       return ret;
 }