From: Bart Van Assche Date: Sun, 26 Jul 2009 15:55:48 +0000 (+0000) Subject: Suppress data race reports for the data race triggered by Darwin's pthread_once(... X-Git-Tag: svn/VALGRIND_3_5_0~232 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8235a379dd01211fc1359bd70d61d3c545ce2a0e;p=thirdparty%2Fvalgrind.git 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. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10616 --- diff --git a/drd/drd_pthread_intercepts.c b/drd/drd_pthread_intercepts.c index 7639f10102..a30adba3d2 100644 --- a/drd/drd_pthread_intercepts.c +++ b/drd/drd_pthread_intercepts.c @@ -453,6 +453,24 @@ PTH_FUNC(int, pthreadZucancelZa, pthread_t pt_thread) 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,