From ca31711625095c2d6e308d7f0fc9d371ad0934d4 Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Tue, 26 May 2015 22:04:50 +0800 Subject: [PATCH] Fixed phpdbg exit unexpected after signal SIGCONT on OS X --- sapi/phpdbg/phpdbg_io.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sapi/phpdbg/phpdbg_io.c b/sapi/phpdbg/phpdbg_io.c index 1f004fbae1..58ea06e299 100644 --- a/sapi/phpdbg/phpdbg_io.c +++ b/sapi/phpdbg/phpdbg_io.c @@ -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; } -- 2.40.0