История изменений
Исправление zaz, (текущая версия) :
man usleep
The usleep() function suspends execution of the calling thread for (at least) usec microseconds ...
Тоесть в POSIX стантарте четко сказано что sleep не обязан просыпатся через указаное количество милисекунд, он обязан просыпаться НЕ мение чем указоное количество времени ...
Собственно все похожие вызовы (select, pool, epool и тд) имеют такое-же описание, в некоторых системах ОС сама принимает решение притормаживать слипы (например в OSX вы спокойно можете дернуть usleep на 40 милисикунд и проснуться через 10 СЕКУНД) - и это не бага, а в полне документированое поведение.
Исходная версия zaz, :
man usleep
The usleep() function suspends execution of the calling thread for (at least) usec microseconds ... [/qupte]
Тоесть в POSIX стантарте четко сказано что sleep не обязан просыпатся через указаное количество милисекунд, он обязан просыпаться НЕ мение чем указоное количество времени ...
Собственно все похожие вызовы (select, pool, epool и тд) имеют такое-же описание, в некоторых системах ОС сама принимает решение притормаживать слипы (например в OSX вы спокойно можете дернуть usleep на 40 милисикунд и проснуться через 10 СЕКУНД) - и это не бага, а в полне документированое поведение.