On Wed, Apr 16, 2008 at 01:39:20AM +0400, Evgeny Sinelnikov wrote: > > > Иначе оно и будет висеть те самые 20 секунд... Причём не совсем 20, > > > ведь sleep() всё-таки прерывается несколько раз по сигналу SIGCHILD от > > > тех самых процессов, которых стоит дождаться... > > > > Реализация sleep() следит за этими прерываниями. > > > > Хм... это как? Там ведь получается, что каждый долгий sleep() > прерывается сигналом, рисуя очередную точку... Это то самое число > долгих процессов, которых нужно дождатся... Этих процессов, как > показывает практика, в среднем от двух до пяти... В случае же, когда > SIGCHILD отключен... Эти процессы быстро проталкивают цикл на 2-5 > секунд и мы получаем от 18 до 15 секунд задержки, о которых вы > говорите.... Нет, sleep(3) не прерывается сигналом SIGCHLD. Если сказано спать 1 секунду, то оно будет спать не менее 1 секунды. -- ldv