]> granicus.if.org Git - php/commitdiff
Fixed bug #60627 (httpd.worker segfault on startup with php_value)
authorXinchen Hui <laruence@php.net>
Wed, 4 Jan 2012 08:25:06 +0000 (08:25 +0000)
committerXinchen Hui <laruence@php.net>
Wed, 4 Jan 2012 08:25:06 +0000 (08:25 +0000)
Zend/zend.h
Zend/zend_signal.h

index 151cbc1d54dacc06b8a50cb14910037c9bb6cb9e..e8bd10725e4227c23beadd58122fc9278f9524d5 100644 (file)
@@ -709,8 +709,8 @@ END_EXTERN_C()
 #else
 #include "zend_signal.h"
 
-#define HANDLE_BLOCK_INTERRUPTIONS()           SIGG(depth)++;
-#define HANDLE_UNBLOCK_INTERRUPTIONS()         if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); }
+#define HANDLE_BLOCK_INTERRUPTIONS()           ZEND_SIGNAL_BLOCK_INTERRUPUTIONS()
+#define HANDLE_UNBLOCK_INTERRUPTIONS()         ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS()
 #endif
 
 BEGIN_EXTERN_C()
index 54f47ee54f949bbede206a50965044abd5f08b75..02d64954372bafab2beb47ce2888578196c706c2 100644 (file)
@@ -69,9 +69,13 @@ typedef struct _zend_signal_globals_t {
 BEGIN_EXTERN_C()
 ZEND_API extern int zend_signal_globals_id;
 END_EXTERN_C()
+# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS() if (EXPECTED(zend_signal_globals_id)) { SIGG(depth)++; }
+# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (EXPECTED(zend_signal_globals_id) && UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); }
 #else /* ZTS */
 # define SIGG(v) (zend_signal_globals.v)
 extern ZEND_API zend_signal_globals_t zend_signal_globals;
+# define ZEND_SIGNAL_BLOCK_INTERRUPUTIONS()  SIGG(depth)++;
+# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (UNEXPECTED((--SIGG(depth))==SIGG(blocked))) { zend_signal_handler_unblock(TSRMLS_C); }
 #endif /* not ZTS */
 
 # define SIGNAL_BEGIN_CRITICAL()       sigset_t oldmask; \