Don't enable this on AppVeyor yet, as there is still an open
issue in phar.
static inline int accel_activate_add(void)
{
#ifdef ZEND_WIN32
+ SHM_UNPROTECT();
INCREMENT(mem_usage);
+ SHM_PROTECT();
#else
struct flock mem_usage_lock;
{
#ifdef ZEND_WIN32
if (ZCG(counted)) {
+ SHM_UNPROTECT();
DECREMENT(mem_usage);
ZCG(counted) = 0;
+ SHM_PROTECT();
}
#else
struct flock mem_usage_unlock;
for (i = 0; i < ZSMMG(shared_segments_count); i++) {
mprotect(ZSMMG(shared_segments)[i]->p, ZSMMG(shared_segments)[i]->size, mode);
}
+#elif defined(ZEND_WIN32)
+ int i;
+
+ if (!smm_shared_globals) {
+ return;
+ }
+
+ if (mode) {
+ mode = PAGE_READONLY;
+ } else {
+ mode = PAGE_READWRITE;
+ }
+
+ for (i = 0; i < ZSMMG(shared_segments_count); i++) {
+ DWORD oldProtect;
+ if (!VirtualProtect(ZSMMG(shared_segments)[i]->p, ZSMMG(shared_segments)[i]->size, mode, &oldProtect)) {
+ zend_accel_error(ACCEL_LOG_ERROR, "Failed to protect memory");
+ }
+ }
#endif
}