]> granicus.if.org Git - php/commitdiff
Cleanup zend_signal API
authorDmitry Stogov <dmitry@zend.com>
Mon, 20 Jun 2016 11:58:42 +0000 (14:58 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 20 Jun 2016 11:58:42 +0000 (14:58 +0300)
13 files changed:
Zend/zend.h
Zend/zend_signal.c
Zend/zend_signal.h
ext/pcntl/php_signal.c
main/main.c
sapi/apache2handler/sapi_apache2.c
sapi/cgi/cgi_main.c
sapi/cli/php_cli.c
sapi/embed/php_embed.c
sapi/fpm/fpm/fpm_main.c
sapi/fpm/fpm/fpm_signals.c
sapi/litespeed/lsapi_main.c
sapi/phpdbg/phpdbg.c

index 23cf6ad831010bdefa830c67fd0fbf2993a8ae86..8fb2726dcf0f205b6fd1b14561bd55eb531c30aa 100644 (file)
 #include "zend_iterators.h"
 #include "zend_stream.h"
 #include "zend_smart_str_public.h"
-
-#ifdef ZEND_SIGNALS
-# include "zend_signal.h"
-#endif
+#include "zend_signal.h"
 
 #ifndef ZEND_SIGNALS
 /* block/unblock interruptions callbacks might be used by SAPI, and were used
@@ -52,7 +49,7 @@
 # define HANDLE_BLOCK_INTERRUPTIONS()
 # define HANDLE_UNBLOCK_INTERRUPTIONS()
 #else
-# define HANDLE_BLOCK_INTERRUPTIONS()          ZEND_SIGNAL_BLOCK_INTERRUPUTIONS()
+# define HANDLE_BLOCK_INTERRUPTIONS()          ZEND_SIGNAL_BLOCK_INTERRUPTIONS()
 # define HANDLE_UNBLOCK_INTERRUPTIONS()                ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS()
 #endif
 
index b4f57415d5e277c456def790a46a2d646ccbcd05..40dcd3bb0d2d5639810d0809a072e1914d09ba11 100644 (file)
 #ifdef ZTS
 ZEND_API int zend_signal_globals_id;
 #else
-zend_signal_globals_t zend_signal_globals;
+ZEND_API zend_signal_globals_t zend_signal_globals;
+#endif /* not ZTS */
+
+#define SIGNAL_BEGIN_CRITICAL() \
+       sigset_t oldmask; \
+       zend_sigprocmask(SIG_BLOCK, &global_sigmask, &oldmask);
+#define SIGNAL_END_CRITICAL() \
+       zend_sigprocmask(SIG_SETMASK, &oldmask, NULL);
+
+#ifdef ZTS
+# define zend_sigprocmask(signo, set, oldset) tsrm_sigmask((signo), (set), (oldset))
+#else
+# define zend_sigprocmask(signo, set, oldset) sigprocmask((signo), (set), (oldset))
 #endif
 
 static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context);
@@ -338,7 +350,7 @@ static void zend_signal_globals_ctor(zend_signal_globals_t *zend_signal_globals)
 }
 /* }}} */
 
-void zend_signal_init() /* {{{ */
+void zend_signal_init(void) /* {{{ */
 {
        int signo;
        struct sigaction sa = {{0}};
@@ -360,7 +372,7 @@ void zend_signal_init() /* {{{ */
 
 /* {{{ zend_signal_startup
  * alloc zend signal globals */
-void zend_signal_startup()
+void zend_signal_startup(void)
 {
 
 #ifdef ZTS
index 0c32db52a380c9c60798e416b0298cb95825fb30..f9662b8d9463403217a4f82ab4997c0d35da7240 100644 (file)
 #ifndef ZEND_SIGNAL_H
 #define ZEND_SIGNAL_H
 
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
+#ifdef ZEND_SIGNALS
+
+# ifdef HAVE_SIGNAL_H
+#  include <signal.h>
+# endif
 
 #ifndef NSIG
 #define NSIG 65
@@ -63,39 +65,51 @@ typedef struct _zend_signal_globals_t {
        zend_signal_queue_t pstorage[ZEND_SIGNAL_QUEUE_SIZE], *phead, *ptail, *pavail; /* pending queue */
 } zend_signal_globals_t;
 
-#ifdef ZTS
-# define SIGG(v) ZEND_TSRMG(zend_signal_globals_id, zend_signal_globals_t *, v)
+# ifdef ZTS
+#  define SIGG(v) ZEND_TSRMG(zend_signal_globals_id, zend_signal_globals_t *, v)
 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(); }
-#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 (((SIGG(depth)--) == SIGG(blocked))) { zend_signal_handler_unblock(); }
-#endif /* not ZTS */
-
-# define SIGNAL_BEGIN_CRITICAL()       sigset_t oldmask; \
-       zend_sigprocmask(SIG_BLOCK, &global_sigmask, &oldmask);
-# define SIGNAL_END_CRITICAL()         zend_sigprocmask(SIG_SETMASK, &oldmask, NULL);
-
-void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context);
-ZEND_API void zend_signal_handler_unblock();
+# else
+#  define SIGG(v) (zend_signal_globals.v)
+BEGIN_EXTERN_C()
+ZEND_API extern zend_signal_globals_t zend_signal_globals;
+END_EXTERN_C()
+# endif /* not ZTS */
+
+# ifdef ZTS
+#  define ZEND_SIGNAL_BLOCK_INTERRUPTIONS() 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(); }
+# else /* ZTS */
+#  define ZEND_SIGNAL_BLOCK_INTERRUPTIONS()  SIGG(depth)++;
+#  define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (((SIGG(depth)--) == SIGG(blocked))) { zend_signal_handler_unblock(); }
+# endif /* not ZTS */
+
+ZEND_API void zend_signal_handler_unblock(void);
 void zend_signal_activate(void);
 void zend_signal_deactivate(void);
-void zend_signal_startup();
-void zend_signal_init();
+void zend_signal_startup(void);
+void zend_signal_init(void);
 void zend_signal_shutdown(void);
+
 ZEND_API int zend_signal(int signo, void (*handler)(int));
 ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigaction *oldact);
 
-#ifdef ZTS
-#define zend_sigprocmask(signo, set, oldset) tsrm_sigmask((signo), (set), (oldset))
-#else
-#define zend_sigprocmask(signo, set, oldset) sigprocmask((signo), (set), (oldset))
-#endif
+#else /* ZEND_SIGNALS */
+
+# define ZEND_SIGNAL_BLOCK_INTERRUPTIONS()
+# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS()
+
+# define zend_signal_activate()
+# define zend_signal_deactivate()
+# define zend_signal_startup()
+# define zend_signal_init()
+# define zend_signal_shutdown()
+
+# define zend_signal(signo, handler)           signal(signo, handler)
+# define zend_sigaction(signo, act, oldact)    sigaction(signo, act, oldact)
+
+#endif /* ZEND_SIGNALS */
 
 #endif /* ZEND_SIGNAL_H */
 
index 7aa5d5a7c1e5dbb51ec588c9419d57d08f5b26ef..a18e641d2a6d6e4fe62c31f3275cbc4b9deba71d 100644 (file)
@@ -28,8 +28,7 @@
 Sigfunc *php_signal4(int signo, Sigfunc *func, int restart, int mask_all)
 {
        struct sigaction act,oact;
-#ifdef ZEND_SIGNALS
-#endif
+
        act.sa_handler = func;
        if (mask_all) {
                sigfillset(&act.sa_mask);
@@ -46,12 +45,7 @@ Sigfunc *php_signal4(int signo, Sigfunc *func, int restart, int mask_all)
                act.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
 #endif
        }
-#ifdef ZEND_SIGNALS
-       if (zend_sigaction(signo, &act, &oact) < 0)
-#else
-       if (sigaction(signo, &act, &oact) < 0)
-#endif
-       {
+       if (zend_sigaction(signo, &act, &oact) < 0) {
                return SIG_ERR;
        }
 
index ad65483437d4fd25e0f2475f6dcdab29e2c73ffe..00471e9c92585f5257dcf8a5e302d40e35453329 100644 (file)
@@ -1597,9 +1597,7 @@ int php_request_startup(void)
                zend_activate();
                sapi_activate();
 
-#ifdef ZEND_SIGNALS
                zend_signal_activate();
-#endif
 
                if (PG(max_input_time) == -1) {
                        zend_set_timeout(EG(timeout_seconds), 1);
index 456b9719fa4f787b6a6fb23e141e56d2b663bf90..6f6de422baad367164dd3ad3c66d38c8221eebd0 100644 (file)
@@ -456,9 +456,7 @@ php_apache_server_startup(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp
        ZEND_TSRMLS_CACHE_UPDATE();
 #endif
 
-#ifdef ZEND_SIGNALS
        zend_signal_startup();
-#endif
 
        sapi_startup(&apache2_sapi_module);
        apache2_sapi_module.startup(&apache2_sapi_module);
index e758b33eeb8a89a1b7dadcbf4cbd1e4e6973f35e..e3398e03e05608d513ddf4cc723584b1adccf713 100644 (file)
@@ -1800,9 +1800,7 @@ int main(int argc, char *argv[])
        ZEND_TSRMLS_CACHE_UPDATE();
 #endif
 
-#ifdef ZEND_SIGNALS
        zend_signal_startup();
-#endif
 
 #ifdef ZTS
        ts_allocate_id(&php_cgi_globals_id, sizeof(php_cgi_globals_struct), (ts_allocate_ctor) php_cgi_globals_ctor, NULL);
index 09ce00f9e7695be889920b6db219c20beb9df302..3c7a136f4ef33b6f53bb6c29ef2f085a4c5c3ce0 100644 (file)
@@ -1230,9 +1230,7 @@ int main(int argc, char *argv[])
        ZEND_TSRMLS_CACHE_UPDATE();
 #endif
 
-#ifdef ZEND_SIGNALS
        zend_signal_startup();
-#endif
 
 #ifdef PHP_WIN32
        _fmode = _O_BINARY;                     /*sets default for file streams to binary */
index 18c2027271567bb2b8cf2ab1d83162e10b15a089..7cc4e6a1263ae2a11bd27e2cd24b43f071000362 100644 (file)
@@ -177,9 +177,7 @@ EMBED_SAPI_API int php_embed_init(int argc, char **argv)
   ZEND_TSRMLS_CACHE_UPDATE();
 #endif
 
-#ifdef ZEND_SIGNALS
        zend_signal_startup();
-#endif
 
   sapi_startup(&php_embed_module);
 
index 5adeb63b7a18028a4e43654e429dbd3556dca237..6dc8343fe6a8a51ea5802ed4d42d0a9d810b2150 100644 (file)
@@ -1612,9 +1612,7 @@ int main(int argc, char *argv[])
        tsrm_ls = ts_resource(0);
 #endif
 
-#ifdef ZEND_SIGNALS
        zend_signal_startup();
-#endif
 
        sapi_startup(&cgi_sapi_module);
        cgi_sapi_module.php_ini_path_override = NULL;
index a637e69e71949ff361765b0bead06682396dbb11..8d0a4caf255dc460b9427e4eba0637b382ac171c 100644 (file)
@@ -242,9 +242,7 @@ int fpm_signals_init_child() /* {{{ */
                return -1;
        }
 
-#ifdef ZEND_SIGNALS
        zend_signal_init();
-#endif
        return 0;
 }
 /* }}} */
index 4dede3f7177d71ddbf59846674996b6361360939..da7ca2c30c34e37f73ab5608548876ba917aeb50 100644 (file)
@@ -1007,9 +1007,7 @@ int main( int argc, char * argv[] )
     tsrm_startup(1, 1, 0, NULL);
 #endif
 
-#ifdef ZEND_SIGNALS
        zend_signal_startup();
-#endif
 
     if (argc > 1 ) {
         if ( parse_opt( argc, argv, &climode,
index 68a164c49920e29e072e959e4a96473ed0142d24..e72b543a42ededd46c9434f2d471ce97696b6e14 100644 (file)
@@ -1241,11 +1241,7 @@ void phpdbg_signal_handler(int sig, siginfo_t *info, void *context) /* {{{ */
                        }
                        is_handled = phpdbg_watchpoint_segfault_handler(info, context);
                        if (is_handled == FAILURE) {
-#ifdef ZEND_SIGNALS
                                zend_sigaction(sig, &PHPDBG_G(old_sigsegv_signal), NULL);
-#else
-                               sigaction(sig, &PHPDBG_G(old_sigsegv_signal), NULL);
-#endif
                        }
                        break;
        }
@@ -1342,9 +1338,7 @@ int main(int argc, char **argv) /* {{{ */
        ZEND_TSRMLS_CACHE_UPDATE();
 #endif
 
-#ifdef ZEND_SIGNALS
        zend_signal_startup();
-#endif
 
 phpdbg_main:
        ini_entries = NULL;