summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2020-05-06 13:48:17 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2020-05-06 13:51:23 +0200
commite7ac328451fa3b3edfbd3658a2365b75d41c0698 (patch)
tree60830d3a0eb1425d32e74c65a2bb72ca451f709c
parent6c44e65b33af3d07f1d4edcb23828adf53ec9954 (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.c9
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;
}
/*