We should distinguish between success and timeout, to let the user handle those two events differently. Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> --- 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list