1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 00:48:25 +02:00
This commit is contained in:
Jani Taskinen
2008-08-05 15:12:19 +00:00
parent a032e1a514
commit c71ea248bd
8 changed files with 30 additions and 23 deletions
+1 -3
View File
@@ -9,11 +9,9 @@ PHP_ARG_ENABLE(pcntl, whether to enable pcntl support,
[ --enable-pcntl Enable experimental pcntl support (CLI/CGI only)])
if test "$PHP_PCNTL" != "no"; then
AC_CHECK_FUNCS(fork, [ AC_DEFINE(HAVE_FORK,1,[ ]) ], [ AC_MSG_ERROR(pcntl: fork() not supported by this platform) ])
AC_CHECK_FUNCS(waitpid, [ AC_DEFINE(HAVE_WAITPID,1,[ ]) ], [ AC_MSG_ERROR(pcntl: fork() not supported by this platform) ])
AC_CHECK_FUNCS(sigaction, [ AC_DEFINE(HAVE_SIGACTION,1,[ ]) ], [ AC_MSG_ERROR(pcntl: sigaction() not supported by this platform) ])
AC_CHECK_FUNCS(getpriority setpriority wait3 sigprocmask sigwaitinfo sigtimedwait)
AC_CHECK_FUNCS([getpriority setpriority wait3 sigprocmask sigwaitinfo sigtimedwait])
PHP_NEW_EXTENSION(pcntl, pcntl.c php_signal.c, $ext_shared, cli)
fi
+11 -6
View File
@@ -35,8 +35,11 @@
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_pcntl.h"
#include "php_signal.h"
#include "php_ticks.h"
#if HAVE_GETPRIORITY || HAVE_SETPRIORITY || HAVE_WAIT3
#include <sys/wait.h>
#include <sys/time.h>
#include <sys/resource.h>
#endif
@@ -864,12 +867,12 @@ static void pcntl_sigwaitinfo(INTERNAL_FUNCTION_PARAMETERS, int timedwait) /* {{
#ifdef SIGCHLD
case SIGCHLD:
add_assoc_long_ex(user_siginfo, "status", sizeof("status"), siginfo.si_status);
#ifdef si_utime
# ifdef si_utime
add_assoc_double_ex(user_siginfo, "utime", sizeof("utime"), siginfo.si_utime);
#endif
#ifdef si_stime
# endif
# ifdef si_stime
add_assoc_double_ex(user_siginfo, "stime", sizeof("stime"), siginfo.si_stime);
#endif
# endif
add_assoc_long_ex(user_siginfo, "pid", sizeof("pid"), siginfo.si_pid);
add_assoc_long_ex(user_siginfo, "uid", sizeof("uid"), siginfo.si_uid);
break;
@@ -883,7 +886,9 @@ static void pcntl_sigwaitinfo(INTERNAL_FUNCTION_PARAMETERS, int timedwait) /* {{
#ifdef SIGPOLL
case SIGPOLL:
add_assoc_long_ex(user_siginfo, "band", sizeof("band"), siginfo.si_band);
# ifdef si_fd
add_assoc_long_ex(user_siginfo, "fd", sizeof("fd"), siginfo.si_fd);
# endif
break;
#endif
EMPTY_SWITCH_DEFAULT_CASE();
@@ -894,7 +899,7 @@ static void pcntl_sigwaitinfo(INTERNAL_FUNCTION_PARAMETERS, int timedwait) /* {{
}
/* }}} */
/* {{{ proto int sigwaitinfo(array set[, array &siginfo])
/* {{{ proto int pcnlt_sigwaitinfo(array set[, array &siginfo])
Synchronously wait for queued signals */
PHP_FUNCTION(pcntl_sigwaitinfo)
{
@@ -902,7 +907,7 @@ PHP_FUNCTION(pcntl_sigwaitinfo)
}
/* }}} */
/* {{{ proto int sigtimedwait(array set[, array &siginfo[, int seconds[, int nanoseconds]]])
/* {{{ proto int pcntl_sigtimedwait(array set[, array &siginfo[, int seconds[, int nanoseconds]]])
Wait for queued signals */
PHP_FUNCTION(pcntl_sigtimedwait)
{
-3
View File
@@ -21,9 +21,6 @@
#ifndef PHP_PCNTL_H
#define PHP_PCNTL_H
#include <sys/wait.h>
#include "php_signal.h"
#include "php_ticks.h"
extern zend_module_entry pcntl_module_entry;
#define phpext_pcntl_ptr &pcntl_module_entry
+8 -1
View File
@@ -24,7 +24,6 @@
* in the Unix Environment by W. Richard Stevens p 298. */
Sigfunc *php_signal(int signo, Sigfunc *func, int restart)
{
struct sigaction act,oact;
act.sa_handler = func;
sigemptyset(&act.sa_mask);
@@ -44,3 +43,11 @@ Sigfunc *php_signal(int signo, Sigfunc *func, int restart)
return oact.sa_handler;
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/
+1 -1
View File
@@ -3,7 +3,7 @@ Test pcntl wait functionality
--SKIPIF--
<?php
if (!extension_loaded("pcntl")) print "skip";
if (!function_exists("posix_kill")) print "skip posix_kill() not available";
elseif (!function_exists("posix_kill")) print "skip posix_kill() not available";
?>
--FILE--
<?php
+2 -2
View File
@@ -2,8 +2,8 @@
pcntl: pcntl_sigprocmask(), pcntl_sigwaitinfo(), pcntl_sigtimedwait()
--SKIPIF--
<?php
if (!extension_loaded('pcntl')) die('skip pcntl extension not available');
if (!extension_loaded('posix')) die('skip posix extension not available');
if (!extension_loaded('pcntl')) die('skip pcntl extension not available');
elseif (!extension_loaded('posix')) die('skip posix extension not available');
?>
--FILE--
<?php
+4 -4
View File
@@ -3,10 +3,10 @@ pcnt_signal_dispatch()
--SKIPIF--
<?php
if (!extension_loaded("pcntl")) print "skip";
if (!function_exists("pcntl_signal")) print "skip pcntl_signal() not available";
if (!function_exists("pcntl_signal_dispatch")) print "skip pcntl_signal_dispatch() not available";
if (!function_exists("posix_kill")) print "skip posix_kill() not available";
if (!function_exists("posix_getpid")) print "skip posix_getpid() not available";
elseif (!function_exists("pcntl_signal")) print "skip pcntl_signal() not available";
elseif (!function_exists("pcntl_signal_dispatch")) print "skip pcntl_signal_dispatch() not available";
elseif (!function_exists("posix_kill")) print "skip posix_kill() not available";
elseif (!function_exists("posix_getpid")) print "skip posix_getpid() not available";
?>
--FILE--
<?php
+3 -3
View File
@@ -3,9 +3,9 @@ Closures as a signal handler
--SKIPIF--
<?php
if (!extension_loaded("pcntl")) print "skip";
if (!function_exists("pcntl_signal")) print "skip pcntl_signal() not available";
if (!function_exists("posix_kill")) print "skip posix_kill() not available";
if (!function_exists("posix_getpid")) print "skip posix_getpid() not available";
elseif (!function_exists("pcntl_signal")) print "skip pcntl_signal() not available";
elseif (!function_exists("posix_kill")) print "skip posix_kill() not available";
elseif (!function_exists("posix_getpid")) print "skip posix_getpid() not available";
?>
--FILE--
<?php