To ensure that usleep() is called with the same argument as the one being tested - a positive number:
<?php
if (!function_exists('time_sleep_until')) {
function time_sleep_until($future) {
$sleep = ($future - microtime(1))*1000000;
if ($sleep<=0) {
trigger_error("Time in past", E_USER_WARNING);
return false;
}
usleep($sleep);
return true;
}
}
?>
time_sleep_until
(PHP 5 >= 5.1.0)
time_sleep_until — Belirtilen zamana kadar betiği uyutur
Açıklama
bool time_sleep_until
( float $zaman_damgası
)
Unix zaman_damgası ile belirtilen zamana kadar betiği uyutur.
Değiştirgeler
- zaman_damgası
-
Betiğin uyanacağı zaman.
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Sürüm Bilgisi
| Sürüm: | Açıklama |
|---|---|
| 5.3.0 | Bu işlev artık Windows sistemler üzerinde de çalışıyor. |
Hatalar/İstisnalar
Belirtilen zaman_damgası geçmişte ise işlev bir E_WARNING üretir.
Örnekler
Örnek 1 - time_sleep_until() örneği
<?php
// false döndürüp bir uyarı üretir
var_dump(time_sleep_until(time()-1));
// Sadece hızlı bilgisayarlarda çalışır; 0.2 saniye uyutur.
var_dump(time_sleep_until(microtime(true)+0.2));
?>
Notlar
Bilginize: Alınan tüm sinyaller betiğin uyanmasına sebep olur.
Ayrıca Bakınız
- sleep() - Çalışmayı geciktirir
- usleep() - Çalışmayı mikrosaniye cinsinden geciktirir
- time_nanosleep() - Çalışmayı saniye ve nanosaniye cinsinden geciktirir
- set_time_limit() - Azami çalıştırma süresini sınırlar
time_sleep_until
pasha
03-Sep-2009 01:11
03-Sep-2009 01:11
roberto at spadim dot com dot br
16-Dec-2006 03:05
16-Dec-2006 03:05
better implementation
<?php
if (!function_exists('time_sleep_until')) {
function time_sleep_until($future) {
if ($future < time()) {
trigger_error("Time in past", E_USER_WARNING);
return false;
}
usleep(($future - microtime(1))*1000000);
return true;
}
}
?>
ssnoyes at hotmail dot com
25-Nov-2005 07:58
25-Nov-2005 07:58
Implementation for < 5.1 or Windows users
<?php
if (!function_exists('time_sleep_until')) {
function time_sleep_until($future) {
if ($future < time()) {
trigger_error("Time in past", E_USER_WARNING);
return false;
}
sleep($future - time());
return true;
}
}
?>
