|
time_nanosleep
Delay for a number of seconds and nanoseconds
(PHP 5)
Example 1364. time_nanosleep() example<?php Code Examples / Notes » time_nanosleepm
You should take into account, if you use the function replacement down here, the CPU will be in use of 99% for the time of execution... (A little bit better in this situation is to let the 'full seconds' go by a normal sleep command (makes the thread sleep!, and uses minimum cpu)) <?php //THIS IS THE FUNCTION WE ARE TALKIN ABOUT function timeWait($microtime) { //optimizations added by me [start] //sleep the full seconds sleep(intval($microtime)); //set the microtime to only resleep the last part of the nanos $microtime = $microtime - intval($microtime); //optimizations added by me [end] $timeLimit = $microtime + array_sum(explode(" ",microtime())); while(array_sum(explode(" ",microtime())) < $timeLimit) {/*DO NOTHING*/} return(true); } //THIS IS HOW WE CAN USE IT echo "Process started at " . date("H:i:s") . " and " . current(explode(" ",microtime())) . " nanoseconds. "; timeWait(5.5); //With this call the system will wait 5 seconds and a half. You can use either integer or float. echo "Process completed at " . date("H:i:s") . " and " . current(explode(" ",microtime())) . " nanoseconds."; ?> tecnomaniac
This is an alternative function to sleep_nanosecond that you can use with PHP versions below PHP 5.0. It is not very accurate if we talk about nanoseconds but the results are satisfatory. Enjoy! <?php //THIS IS THE FUNCTION WE ARE TALKIN ABOUT function timeWait($microtime) { $timeLimit = $microtime + array_sum(explode(" ",microtime())); while(array_sum(explode(" ",microtime())) < $timeLimit) {/*DO NOTHING*/} return(true); } //THIS IS HOW WE CAN USE IT echo "Process started at " . date("H:i:s") . " and " . current(explode(" ",microtime())) . " nanoseconds. "; timeWait(5.5); //With this call the system will wait 5 seconds and a half. You can use either integer or float. echo "Process completed at " . date("H:i:s") . " and " . current(explode(" ",microtime())) . " nanoseconds."; ?> fantasysportswire
Just glancing at this - and the note from over a year ago with a implementation for windows.. with 5.0.0 and higher it would be simplier to just do something like...... <? if (!function_exists('time_nanosleep')) { function time_nanosleep($seconds, $nanoseconds) { sleep($seconds); usleep(round($nanoseconds/100)); return true; } } ?> ....off the top of my head - obviously simple enough there should be no mistakes.. but those are the ones that always seem to get ya :( ..... anybody a emuxperts.net
Documentation states that "seconds" must be positive. This is not correct, 0 is possible. Rather, "seconds" must be non-negative. |