From 6c811ed486ddaeac08e198984a9b628655a34498 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Fri, 9 Dec 2011 17:14:15 +0100 Subject: [PATCH] threads: Document spurious wakeups on virCondWait --- src/util/threads.h | 6 ++++++ 1 file changed, 6 insertions(+) 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); -- 2.47.2