Bug 14245 - [FR] wait_test()
: [FR] wait_test()
Status: CLOSED NOTABUG
: Sisyphus
(All bugs in Sisyphus/libshell)
: unstable
: all Linux
: P2 enhancement
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-01-30 11:45 by
Modified: 2009-03-10 20:33 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-01-30 11:45:06
Возможно ли добавить в libshell такую функцию для конечного периодического
теста
с таймаутом? (название, возможно, неоптимальное...)

# $1 is a test (e.g. "-s" for "non-empty file")
# $2 is an object to apply test to (e.g. a filename)
# $3 is timeout (5 by default; e.g. "10")
# $4 is a pause (1 sec by default; e.g. "0.1")
wait_test()
{
    [ -n "$1" -a -n "$2 ] || return
    tries=${3:-5}
    pause=${4:-1}
    for i in `seq 1 $tries`; do
        [ "$1" "$2" ] && break
        sleep $pause
    done
}

В некоторых ситуациях может хотеться поспать "перед", а не
"после", но это можно компенсировать добавлением своего sleep
перед вызовом данной функции.

Пример ситуации, когда понадобилось -- alterator-ovz:

alt_new()
{
# ...
    запускаем_длинную_команду_в_фоне \
            > $LOG_DIR/$in_profile 2>&1" &
# а вот здесь можем вернуться слишком рано 
# и за этим логом следить не предложат
    for i in `seq 1 5`; do
        [ -s "$LOG_DIR/$in_profile" ] && break
        sleep 1
    done
# но мы хитрей :)
    echo '()'
}
------- Comment #1 From 2009-02-27 13:57:03 -------
(В ответ на комментарий №0)
> Пример ситуации, когда понадобилось -- alterator-ovz:
> 
> alt_new()
> {
> # ...
>     запускаем_длинную_команду_в_фоне \
>             > $LOG_DIR/$in_profile 2>&1" &

Почему после этого не сказать wait и после этого проверить файл ?

> # а вот здесь можем вернуться слишком рано 
> # и за этим логом следить не предложат
>     for i in `seq 1 5`; do
>         [ -s "$LOG_DIR/$in_profile" ] && break
>         sleep 1
>     done
> # но мы хитрей :)
>     echo '()'
> }
------- Comment #2 From 2009-03-03 19:11:44 -------
Уже не помню, но про wait знал и тогда.
------- Comment #3 From 2009-03-03 19:18:58 -------
(В ответ на комментарий №2)
> Уже не помню, но про wait знал и тогда.

Тогда закрой.
------- Comment #4 From 2009-03-10 20:33:36 -------
Хорошо.