[devel] I: sleep vs usleep (was: [Bug 12655] upgrade() is broken (wrong pidfile handling))

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Сб Сен 1 03:21:10 MSD 2007


Hi,

> ------- Additional Comments From mike на altlinux  2007-08-31 16:57 -------
> Вот с таким перед погашением старого экземпляра работает:
> 
> waitpidfile()

Тогда уж wait_pid с pid'ом на входе вместо файла.

> {
>         [ -z "$1" ] && exit 1

[ -n "$1" ] || return

>         MAXCOUNT=50

local maxcount="${2:-50}"

>         counter=0

local counter=0

>         until [ -s "$1" ]; do


>                 [ "$((counter++))" -eq "$MAXCOUNT" ] && break
>                 sleep 0.1
>         done

while [ "$counter" -lt "$maxcount" ] && kill -0 "$1" 2>/dev/null; do
	sleep 0.1
	counter="$(($counter+1))"
done
! kill -0 "$1" 2>/dev/null
> }
> 
> Предлагаю MAXCOUNT в десятых секунды пытаться сперва взять из $2, по дефолту --
> 50, и всунуть это безобразие в functions.

В виде, пригодном для stop_daemon, можно и в functions.

> Только тут ещё один вопрос -- я помню, что sleep 0.1 эффективнее, а led@ вот
> говорит, что как раз наоборот -- usleep 100000.  sr@ сказал, что без разницы.
> Как оно там на самом деле? :) (пока приведу к твоему виду)

sr@ прав, они работают примерно одинаково: один и тот же системный
вызов nanosleep(2), usleep подубовее, вероятно sleep переносимее.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070901/451e45ed/attachment-0001.bin>


Подробная информация о списке рассылки Devel