|
From: <sv...@va...> - 2009-07-26 15:56:02
|
Author: bart
Date: 2009-07-26 16:55:48 +0100 (Sun, 26 Jul 2009)
New Revision: 10616
Log:
Suppress data race reports for the data race triggered by Darwin's pthread_once() implementation such that the pth_once test also passes on Darwin.
Modified:
trunk/drd/drd_pthread_intercepts.c
Modified: trunk/drd/drd_pthread_intercepts.c
===================================================================
--- trunk/drd/drd_pthread_intercepts.c 2009-07-26 15:46:47 UTC (rev 10615)
+++ trunk/drd/drd_pthread_intercepts.c 2009-07-26 15:55:48 UTC (rev 10616)
@@ -453,6 +453,24 @@
return ret;
}
+// pthread_once
+PTH_FUNC(int, pthreadZuonceZa, // pthread_once*
+ pthread_once_t *once_control, void (*init_routine)(void))
+{
+ int ret;
+ OrigFn fn;
+ VALGRIND_GET_ORIG_FN(fn);
+ /*
+ * Ignore any data races triggered by the implementation of pthread_once().
+ * Necessary for Darwin. This is not necessary for Linux but doesn't have
+ * any known adverse effects.
+ */
+ DRD_IGNORE_VAR(once_control);
+ CALL_FN_W_WW(ret, fn, once_control, init_routine);
+ DRD_STOP_IGNORING_VAR(once_control);
+ return ret;
+}
+
// pthread_mutex_init
PTH_FUNC(int, pthreadZumutexZuinit,
pthread_mutex_t *mutex,
|