#21331 [Com]: SIGINT handler not called during socket_accept() (revive of Bug #20745)
| From: | polone at townnews dot com | Date: | Fri, 10 Jan 2003 08:12:22 +0000 |
| Subject: | #21331 [Com]: SIGINT handler not called during socket_accept() (revive of Bug #20745) | ||
| References: | 1 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969350801@lists.php.net to get a copy of this message | ||
ID: 21331
Comment by: polone@townnews.com
Reported By: piotr@t-p-l.com
Status: Open
Bug Type: Documentation problem
Operating System: Linux
PHP Version: 4.3.0
New Comment:
The "ticks" aspect isn't really a change from the previous behaviour,
when set as:
declare(ticks=1);
Though I would like to point out that anything using
register_tick_function() will now magically get executed ALL THE TIME,
even though this has to be enabled for signal handling support.
Previous Comments:
------------------------------------------------------------------------
[2003-01-02 15:37:05] piotr@t-p-l.com
using define(ticks=1); it seems to have gotten rid of the problem with
it executing extra code here is a sample
$foo = socket_accept($sock);
echo "Line One...\n";
echo "Line Two...\n";
with define(ticks=2); "Line One..." shows up before the signal handler
is called .. with ticks=1 it doesnt .. so again knowing what exactly
this ticks define does would help.
------------------------------------------------------------------------
[2003-01-02 15:13:24] piotr@t-p-l.com
on a side but related issue .. the warning about the interrupted system
call is spewed out twice .. so I guess thats a bug in itself
------------------------------------------------------------------------
[2003-01-02 15:10:38] piotr@t-p-l.com
ok .. so now the handler executes with that third param set to false,
but it looks like code after the call to socket_accept() still a line
or two of it is run before the handler kicks in.
also what is the significance of the value of the ticks define?
------------------------------------------------------------------------
[2003-01-02 11:46:39] wez@php.net
add the following to the start of your script:
declare(ticks=2);
Signal handlers require ticks to be activated in order to be
triggered.
Changing to a documentation problem.
------------------------------------------------------------------------
[2003-01-02 03:07:08] piotr@t-p-l.com
this is meant as a revive of Bug #20745 .. but since its not my bug I
couldnt reopen it myself .. dont know if you guys get messages from
abandoned bugs .. so I opened this one)
(this was tested in the CGI executable from 4.2.3 and with the CLI
executable from 4.3.0)
steps to reproduce:
install a signal handler for SIGINT (using pcntl_signal())
create a socket
bind the socket
start listening on the socket
call socket_accept() on the socket
now hit ctrl-c .. and the handler isnt called .. if the signal handler
was installed with the third parameter set to false .. the call gets
interrupted but the call just fails and the handler is still not
called.
if you need any additional information please let me know.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=21331&edit=1