From 5e35cc0386d405c415fe09cd9910f132af8d5645 Mon Sep 17 00:00:00 2001 Message-Id: <5e35cc0386d405c415fe09cd9910f132af8d5645@dist-git> From: Pavel Hrdina Date: Fri, 10 Jul 2015 12:39:29 +0200 Subject: [PATCH] virCondWaitUntil: add another return value We should distinguish between success and timeout, to let the user handle those two events differently. Signed-off-by: Pavel Hrdina (cherry picked from commit 5c48618f114a62b463dbc8981365448826e6df8b) Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1147471 Signed-off-by: Pavel Hrdina Signed-off-by: Jiri Denemark --- 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 535701e..2f1f69d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2687,15 +2687,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.5