summaryrefslogtreecommitdiff
path: root/ext/pcntl/pcntl.c
diff options
context:
space:
mode:
authorjulien.pons <julien.pons@mobpartner.com>2015-02-23 14:38:55 +0100
committerJulien Pauli <jpauli@php.net>2015-03-17 10:59:58 +0100
commit90114a3e93f5209b3d880d154fdb61d3d0c67185 (patch)
tree2f2b05f445a109c73eecf6a63ac09a3e1f9d8494 /ext/pcntl/pcntl.c
parent56b0ff0e5d125f8fc83658b9ac2faec0f45e93c6 (diff)
downloadphp-git-90114a3e93f5209b3d880d154fdb61d3d0c67185.tar.gz
Add wifcontinued and wcontinued for pcntl
Diffstat (limited to 'ext/pcntl/pcntl.c')
-rw-r--r--ext/pcntl/pcntl.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/ext/pcntl/pcntl.c b/ext/pcntl/pcntl.c
index 7d130aecef..8cb2617bc4 100644
--- a/ext/pcntl/pcntl.c
+++ b/ext/pcntl/pcntl.c
@@ -96,6 +96,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_pcntl_wifstopped, 0, 0, 1)
ZEND_ARG_INFO(0, status)
ZEND_END_ARG_INFO()
+#ifdef HAVE_WCONTINUED
+ZEND_BEGIN_ARG_INFO_EX(arginfo_pcntl_wifcontinued, 0, 0, 1)
+ ZEND_ARG_INFO(0, status)
+ZEND_END_ARG_INFO()
+#endif
+
ZEND_BEGIN_ARG_INFO_EX(arginfo_pcntl_wifsignaled, 0, 0, 1)
ZEND_ARG_INFO(0, status)
ZEND_END_ARG_INFO()
@@ -158,7 +164,7 @@ const zend_function_entry pcntl_functions[] = {
PHP_FE(pcntl_alarm, arginfo_pcntl_alarm)
PHP_FE(pcntl_get_last_error, arginfo_pcntl_void)
PHP_FALIAS(pcntl_errno, pcntl_get_last_error, NULL)
- PHP_FE(pcntl_strerror, arginfo_pcntl_strerror)
+ PHP_FE(pcntl_strerror, arginfo_pcntl_strerror)
#ifdef HAVE_GETPRIORITY
PHP_FE(pcntl_getpriority, arginfo_pcntl_getpriority)
#endif
@@ -172,6 +178,9 @@ const zend_function_entry pcntl_functions[] = {
PHP_FE(pcntl_sigwaitinfo, arginfo_pcntl_sigwaitinfo)
PHP_FE(pcntl_sigtimedwait, arginfo_pcntl_sigtimedwait)
#endif
+#ifdef HAVE_WCONTINUED
+ PHP_FE(pcntl_wifcontinued, arginfo_pcntl_wifcontinued)
+#endif
PHP_FE_END
};
@@ -209,6 +218,9 @@ void php_register_signal_constants(INIT_FUNC_ARGS)
#ifdef WUNTRACED
REGISTER_LONG_CONSTANT("WUNTRACED", (zend_long) WUNTRACED, CONST_CS | CONST_PERSISTENT);
#endif
+#ifdef HAVE_WCONTINUED
+ REGISTER_LONG_CONSTANT("WCONTINUED", (zend_long) WCONTINUED, CONST_CS | CONST_PERSISTENT);
+#endif
/* Signal Constants */
REGISTER_LONG_CONSTANT("SIG_IGN", (zend_long) SIG_IGN, CONST_CS | CONST_PERSISTENT);
@@ -681,6 +693,24 @@ PHP_FUNCTION(pcntl_wifsignaled)
RETURN_FALSE;
}
/* }}} */
+/* {{{ proto bool pcntl_wifcontinued(int status)
+ Returns true if the child status code represents a process that was resumed due to a SIGCONT signal */
+PHP_FUNCTION(pcntl_wifcontinued)
+{
+#ifdef HAVE_WCONTINUED
+ zend_long status_word;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &status_word) == FAILURE) {
+ return;
+ }
+
+ if (WIFCONTINUED(status_word))
+ RETURN_TRUE;
+#endif
+ RETURN_FALSE;
+}
+/* }}} */
+
/* {{{ proto int pcntl_wexitstatus(int status)
Returns the status code of a child's exit */