]> granicus.if.org Git - php/commitdiff
MFH:
authorFelipe Pena <felipe@php.net>
Wed, 25 Mar 2009 22:52:30 +0000 (22:52 +0000)
committerFelipe Pena <felipe@php.net>
Wed, 25 Mar 2009 22:52:30 +0000 (22:52 +0000)
- Fixed bug #47779 (Wrong value for SIG_UNBLOCK and SIG_SETMASK constants).
  Patch by: mbeccati at php.net

NEWS
ext/pcntl/pcntl.c
ext/pcntl/tests/003.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 63b2353e992437f965a112d256d589771204c512..d8bde6405f8c349d60a277661cbc5c7cd9b80539 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,12 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 200?, PHP 5.3.0 RC 2
+- Fixed bug #47779 (Wrong value for SIG_UNBLOCK and SIG_SETMASK constants).
+  (Matteo)
 - Fixed bug #47699 (autoload and late static binding). (Dmitry)
 - Fixed bug #47038 (Memory leak in include). (Dmitry)
-- Fixed bug #44409 (PDO::FETCH_SERIALIZE calls __construct()).
-  (matteo at beccati dot com)
-- Fixed bug #42362 - (HTTP status codes 204 and 304 should not be gzipped).
+- Fixed bug #44409 (PDO::FETCH_SERIALIZE calls __construct()). (Matteo)
+- Fixed bug #42362 (HTTP status codes 204 and 304 should not be gzipped).
   (Scott, Edward Z. Yang)
 
 
index 90070566b8c73278cc14db21f014245c6bceb9b0..9a702074c056ffdcd367bcde6b88fa7a276d62cb 100755 (executable)
@@ -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 (file)
index 0000000..012277d
--- /dev/null
@@ -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)