|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-05-27 01:18 UTC] 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 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 13:00:01 2025 UTC |
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.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