ID: 33156
Updated by: [EMAIL PROTECTED]
Reported By: tomo at groovecast dot org
Status: Open
Bug Type: Scripting Engine problem
Operating System: win32 / Cygwin
PHP Version: 5.*, 4.* (2005-06-20)
New Comment:
Verified with PHP5.1.0b2
Previous Comments:
------------------------------------------------------------------------
[2005-06-20 13:20:05] [EMAIL PROTECTED]
set_time_limit() does not work unter WinXP/Cygwin, Win2k/Cygwin.
Verified with 4.3.11, 4.4.0RC1, 5.0.4, 5.1.0b1, 5.1-dev.
It works on the same machine under Linux.
Reproduce code:
---------------
<?php
ini_set('display_errors', 0);
echo "Start\n";
function boo()
{
echo "Shutdown\n";
}
register_shutdown_function("boo");
/* not necessary, just to show the error sooner */
set_time_limit(1);
/* infinite loop to simulate long processing */
for (;;) { }
echo "End\n";
?>
Expected result:
----------------
The script terminates after 1 second
Actual result:
--------------
The script loops until it gets interrupted:
$ date; php 005a.php; date
Mon Jun 20 09:45:11 2005
Content-type: text/html
X-Powered-By: PHP/4.3.11
Start
^C
Mon Jun 20 09:48:18 2005
------------------------------------------------------------------------
[2005-05-28 01:33:25] tomo at groovecast dot org
I tried php5-200505272030, and the problem remains. windows native
version is not the case. It's a cygwin API problem.
cygwin's setitimer implementation is following.
at cygwin-1.5.16-1/winsup/cygwin/timer.cc:354
extern "C" int
setitimer (int which, const struct itimerval *value, struct itimerval
*ovalue)
{
if (which != ITIMER_REAL)
{
set_errno (EINVAL);
return -1;
}
--snipped--
As you can see setitimer(ITIMER_PROF, ...) fails, and no signal will be
generated.
------------------------------------------------------------------------
[2005-05-27 08:49:07] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2005-05-27 01:18:04] tomo at groovecast dot org
Description:
------------
Since Cygwin-1.5.16-1 implements setitimer (ITIMER_REAL, ...) only,
tests/func/005a.phpt test always fails. This problem also happens with
php5.
Reproduce code:
---------------
tests/func/005a.phpt contents.
Expected result:
----------------
Start
Shutdown
Actual result:
--------------
Start
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=33156&edit=1