From 262160e0e9919dce914df2f0643c4b16ca137454 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Thu, 24 Sep 2015 10:48:34 +0300 Subject: [PATCH] Attmpt to fix "Unable to reattach to base address" problem. (Matt Ficken) --- NEWS | 3 +++ ext/opcache/shared_alloc_win32.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 2d0b38caa7..41ef2ba1e8 100644 --- a/NEWS +++ b/NEWS @@ -24,6 +24,9 @@ PHP NEWS . Fixed bug #70279 (HTTP Authorization Header is sometimes passed to newer reqeusts). (Laruence) +- Opcache + . Attmpt to fix "Unable to reattach to base address" problem. (Matt Ficken) + - OpenSSL . Require at least OpenSSL version 0.9.8. (Jakub Zelenka) . Fixed bug #68312 (Lookup for openssl.cnf causes a message box). (Anatol) diff --git a/ext/opcache/shared_alloc_win32.c b/ext/opcache/shared_alloc_win32.c index 92cf086ab1..141c95d80e 100644 --- a/ext/opcache/shared_alloc_win32.c +++ b/ext/opcache/shared_alloc_win32.c @@ -206,12 +206,17 @@ static int create_segments(size_t requested_size, zend_shared_segment ***shared_ /* Mapping failed, wait for mapping object to get freed and retry */ 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(); -- 2.40.0