We should distinguish between success and timeout, to let the user
handle those two events differently.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/conf/domain_conf.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2c3b96b..988818c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2686,15 +2686,25 @@ virDomainObjWait(virDomainObjPtr vm)
}
+/**
+ * Waits for domain condition to be triggered for a specific period of time.
+ *
+ * Returns:
+ * -1 in case of error
+ * 0 on success
+ * 1 on timeout
+ */
int
virDomainObjWaitUntil(virDomainObjPtr vm,
unsigned long long whenms)
{
- if (virCondWaitUntil(&vm->cond, &vm->parent.lock, whenms) < 0
&&
- errno != ETIMEDOUT) {
- virReportSystemError(errno, "%s",
- _("failed to wait for domain condition"));
- return -1;
+ if (virCondWaitUntil(&vm->cond, &vm->parent.lock, whenms) < 0) {
+ if (errno != ETIMEDOUT) {
+ virReportSystemError(errno, "%s",
+ _("failed to wait for domain condition"));
+ return -1;
+ }
+ return 1;
}
return 0;
}
--
2.4.4