From: Anatol Belski Date: Tue, 20 Oct 2015 18:05:44 +0000 (+0200) Subject: backport 262160e and 2d55e8c into 5.6 X-Git-Tag: php-7.0.1RC1~212^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ccc95bf9dfc6b66447487ed1e2914c639967ecb1;p=php backport 262160e and 2d55e8c into 5.6 --- diff --git a/ext/opcache/shared_alloc_win32.c b/ext/opcache/shared_alloc_win32.c index cf4bce005d..fd5d334269 100644 --- a/ext/opcache/shared_alloc_win32.c +++ b/ext/opcache/shared_alloc_win32.c @@ -205,14 +205,19 @@ static int create_segments(size_t requested_size, zend_shared_segment ***shared_ err = GetLastError(); if (ret == ALLOC_FAIL_MAPPING) { /* Mapping failed, wait for mapping object to get freed and retry */ - CloseHandle(memfile); + CloseHandle(memfile); memfile = NULL; + if (++map_retries >= MAX_MAP_RETRIES) { + break; + } + zend_shared_alloc_unlock_win32(); Sleep(1000 * (map_retries + 1)); + zend_shared_alloc_lock_win32(); } else { zend_shared_alloc_unlock_win32(); return ret; } - } while (++map_retries < MAX_MAP_RETRIES); + } while (1); if (map_retries == MAX_MAP_RETRIES) { zend_shared_alloc_unlock_win32();