RE:escape loop on timeout

From: Date: Tue, 22 May 2001 23:54:46 +0000
Subject: RE:escape loop on timeout
Groups: php.windows 
Request: Send a blank email to php-windows+get-7852@lists.php.net to get a copy of this message
Zak Greant wrote: > Johan Lundqvist wrote: > > This is a way of doing it: > > > > $s = time() + 10; > > for ($i = time(); $i <= $s; $i++) { > > print $i; > > } > > > > Will run for about ten seconds... > > Did you leave a bit of code out? > In most cases, this will run for only a few milliseconds. :) > > Try something like this instead: > > $timeout = 1; // Timeout in seconds > $start_time = time(); // Get the current time > > for ($x=0; $x < 1000000000; ++$x) { > > /* > // Check if we have gone over the time limit > // Only check every 1000 loops - this keeps > // us from chewing run time by checking the time > // all the time :) > */ > if ( (0 === ($x % 1000)) && (time () - $start_time) > $timeout) > break; > > echo ($x, '<br>'); > } > > --zak > ---------------- Thanks guys sorry about the delay .. I am in Australia.. checking the time each loop would only work if the loops complete correctly .. if the process locks mid loop php wont reach the criterion break because it deals with each command linearly. ie for (x=0;x!="array full";x++) dothisfunction(x); if ( (0 === ($x % 1000)) && (time () - $start_time) > $timeout) break; etc if dothisfunction() locks up wont the entire script freeze? maybe I am wrong.. what I am after is something like alert() in Perl or the 'on error resume next' in ASP which runs externally to the loop and breaks to the next instance if it is taking too long... any ideas? cheers!

« previous php.windows (#7852) next »