ID: 49340
Updated by: [email protected]
Reported By: alexmontoanelli at gmail dot com
Status: Open
Bug Type: PCNTL related
Operating System: Linux
PHP Version: 5.2.10
New Comment:
Thank you for your bug report.
I don't fully understand the problem.
Is the problem that you have to hit enter for the signal handler to
run? Or that the line with 'echo $foo' is ran after the fgets?
Previous Comments:
------------------------------------------------------------------------
[2009-08-23 22:12:28] alexmontoanelli at gmail dot com
Description:
------------
After executions of certain functions,
the handler configured by
posix_singal, are not called where the
funcion are in execution - like freads.
Reproduce code:
---------------
#!/usr/bin/php
<?php
declare(ticks = 1);
function handler($a){
echo "Calling handler on signal : $a\n";
}
//define handlers for signals
pcntl_signal(SIGTERM, 'handler');
pcntl_signal(SIGINT, 'handler');
//if you send a signal, the function fgets are waiting for a user
input, he is not called, until you enter something
$foo = fgets(STDIN);
echo $foo;
Expected result:
----------------
alexmm tmp # php a.php
^C
Calling handler on signal : 2
Actual result:
--------------
alexmm tmp # php a.php
^C MY_INPUT_AFTER_SEND_CTRL_C
Calling handler on signal : 2
MY_INPUT_AFTER_SEND_CTRL_C
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49340&edit=1