diff options
author | José Bollo <jose.bollo@iot.bzh> | 2020-05-06 13:48:17 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2020-05-06 13:51:23 +0200 |
commit | e7ac328451fa3b3edfbd3658a2365b75d41c0698 (patch) | |
tree | 60830d3a0eb1425d32e74c65a2bb72ca451f709c | |
parent | 6c44e65b33af3d07f1d4edcb23828adf53ec9954 (diff) |
afm-urun: Fix infinite loop on start status
Ensure that there is no infinite loop when waiting
for the completion of a status.
Bug-AGL: SPEC-3323
Change-Id: I93537e9bbbe8ef357d112bea1cb6201e96d01ebf
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | src/afm-urun.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/afm-urun.c b/src/afm-urun.c index 227fd1d..7f8ad16 100644 --- a/src/afm-urun.c +++ b/src/afm-urun.c @@ -146,15 +146,18 @@ error: static const char *wait_state_stable(int isuser, const char *dpath) { - const char *state; + int trial, count; + const char *state = NULL; - for (;;) { + count = 10; + for (trial = 1 ; trial <= count ; trial++) { state = systemd_unit_state_of_dpath(isuser, dpath); if (state == NULL || state == SysD_State_Active || state == SysD_State_Failed) return state; - /* TODO: sleep */ + sleep(1); } + return state; } /* |