summaryrefslogtreecommitdiff
path: root/ext/pcntl
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2009-03-25 22:52:30 +0000
committerFelipe Pena <felipe@php.net>2009-03-25 22:52:30 +0000
commitfe9ce624f670a25c7f568cd0c12f7b63445be301 (patch)
treee58a0c2ef9e4c8a77afdc02bafc8103a1802e6a9 /ext/pcntl
parent2881a60e31bfee41b4f5aee34f2d2bd82b35f4ed (diff)
downloadphp-git-fe9ce624f670a25c7f568cd0c12f7b63445be301.tar.gz
MFH:
- Fixed bug #47779 (Wrong value for SIG_UNBLOCK and SIG_SETMASK constants). Patch by: mbeccati at php.net
Diffstat (limited to 'ext/pcntl')
-rwxr-xr-xext/pcntl/pcntl.c4
-rw-r--r--ext/pcntl/tests/003.phpt32
2 files changed, 34 insertions, 2 deletions
diff --git a/ext/pcntl/pcntl.c b/ext/pcntl/pcntl.c
index 90070566b8..9a702074c0 100755
--- a/ext/pcntl/pcntl.c
+++ b/ext/pcntl/pcntl.c
@@ -264,8 +264,8 @@ void php_register_signal_constants(INIT_FUNC_ARGS)
/* {{{ "how" argument for sigprocmask */
#ifdef HAVE_SIGPROCMASK
REGISTER_LONG_CONSTANT("SIG_BLOCK", SIG_BLOCK, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("SIG_UNBLOCK", SIG_BLOCK, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("SIG_SETMASK", SIG_BLOCK, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SIG_UNBLOCK", SIG_UNBLOCK, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SIG_SETMASK", SIG_SETMASK, CONST_CS | CONST_PERSISTENT);
#endif
/* }}} */
diff --git a/ext/pcntl/tests/003.phpt b/ext/pcntl/tests/003.phpt
new file mode 100644
index 0000000000..012277d255
--- /dev/null
+++ b/ext/pcntl/tests/003.phpt
@@ -0,0 +1,32 @@
+--TEST--
+pcntl: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK
+--SKIPIF--
+<?php
+ if (!extension_loaded('pcntl')) die('skip pcntl extension not available');
+ elseif (!extension_loaded('posix')) die('skip posix extension not available');
+ elseif (!function_exists('pcntl_sigwaitinfo') or !function_exists('pcntl_sigtimedwait')) die('skip required functionality is not available');
+?>
+--FILE--
+<?php
+
+pcntl_sigprocmask(SIG_BLOCK, array(SIGCHLD,SIGTERM), $old);
+var_dump(count($old));
+pcntl_sigprocmask(SIG_BLOCK, array(SIGINT), $old);
+var_dump(count($old));
+pcntl_sigprocmask(SIG_UNBLOCK, array(SIGINT), $old);
+var_dump(count($old));
+pcntl_sigprocmask(SIG_SETMASK, array(SIGINT), $old);
+var_dump(count($old));
+pcntl_sigprocmask(SIG_SETMASK, array(), $old);
+var_dump(count($old));
+pcntl_sigprocmask(SIG_SETMASK, array(), $old);
+var_dump(count($old));
+
+?>
+--EXPECT--
+int(0)
+int(2)
+int(3)
+int(2)
+int(1)
+int(0)