From: Michal Privoznik Date: Fri, 9 Dec 2011 16:14:15 +0000 (+0100) Subject: threads: Document spurious wakeups on virCondWait X-Git-Tag: v0.9.9-rc1~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c811ed486ddaeac08e198984a9b628655a34498;p=thirdparty%2Flibvirt.git threads: Document spurious wakeups on virCondWait --- diff --git a/src/util/threads.h b/src/util/threads.h index b72610cf7a..e52f3a9dea 100644 --- a/src/util/threads.h +++ b/src/util/threads.h @@ -88,8 +88,14 @@ void virMutexUnlock(virMutexPtr m); int virCondInit(virCondPtr c) ATTRIBUTE_RETURN_CHECK; int virCondDestroy(virCondPtr c) ATTRIBUTE_RETURN_CHECK; +/* virCondWait, virCondWaitUntil: + * These functions can return without the associated predicate + * changing value. Therefore in nearly all cases they + * should be enclosed in a while loop that checks the predicate. + */ int virCondWait(virCondPtr c, virMutexPtr m) ATTRIBUTE_RETURN_CHECK; int virCondWaitUntil(virCondPtr c, virMutexPtr m, unsigned long long whenms) ATTRIBUTE_RETURN_CHECK; + void virCondSignal(virCondPtr c); void virCondBroadcast(virCondPtr c);