|
From: <sv...@va...> - 2010-06-02 19:33:03
|
Author: bart
Date: 2010-06-02 20:32:51 +0100 (Wed, 02 Jun 2010)
New Revision: 11145
Log:
Replaced dynamic initialization of DRD_(pthread_cond_initializer) by static initialization.
Added:
trunk/drd/drd_cond_initializer.c
Modified:
trunk/drd/Makefile.am
trunk/drd/drd_pthread_intercepts.c
Modified: trunk/drd/Makefile.am
===================================================================
--- trunk/drd/Makefile.am 2010-06-02 11:58:27 UTC (rev 11144)
+++ trunk/drd/Makefile.am 2010-06-02 19:32:51 UTC (rev 11145)
@@ -56,6 +56,7 @@
drd_clientobj.c \
drd_clientreq.c \
drd_cond.c \
+ drd_cond_initializer.c \
drd_error.c \
drd_hb.c \
drd_load_store.c \
Added: trunk/drd/drd_cond_initializer.c
===================================================================
--- trunk/drd/drd_cond_initializer.c (rev 0)
+++ trunk/drd/drd_cond_initializer.c 2010-06-02 19:32:51 UTC (rev 11145)
@@ -0,0 +1,8 @@
+/* Make the value of PTHREAD_COND_INITIALIZER available to DRD. */
+
+#include "drd_cond.h"
+#include <pthread.h>
+
+static pthread_cond_t pthread_cond_initializer = PTHREAD_COND_INITIALIZER;
+Addr DRD_(pthread_cond_initializer) = (Addr)&pthread_cond_initializer;
+int DRD_(pthread_cond_initializer_size) = sizeof(pthread_cond_initializer);
Modified: trunk/drd/drd_pthread_intercepts.c
===================================================================
--- trunk/drd/drd_pthread_intercepts.c 2010-06-02 11:58:27 UTC (rev 11144)
+++ trunk/drd/drd_pthread_intercepts.c 2010-06-02 19:32:51 UTC (rev 11145)
@@ -134,7 +134,6 @@
static void DRD_(init)(void) __attribute__((constructor));
static void DRD_(check_threading_library)(void);
static void DRD_(set_main_thread_state)(void);
-static void DRD_(set_pthread_cond_initializer)(void);
/* Function definitions. */
@@ -153,7 +152,6 @@
{
DRD_(check_threading_library)();
DRD_(set_main_thread_state)();
- DRD_(set_pthread_cond_initializer)();
}
/**
@@ -343,21 +341,6 @@
pthread_self(), 0, 0, 0, 0);
}
-/** Tell DRD which value PTHREAD_COND_INITIALIZER has. */
-static void DRD_(set_pthread_cond_initializer)(void)
-{
- int res;
-
- static pthread_cond_t pthread_cond_initializer = PTHREAD_COND_INITIALIZER;
-
- // Make sure that DRD knows about the main thread's POSIX thread ID.
- VALGRIND_DO_CLIENT_REQUEST(res, -1, VG_USERREQ__SET_PTHREAD_COND_INITIALIZER,
- &pthread_cond_initializer,
- sizeof(pthread_cond_initializer),
- 0, 0, 0);
-}
-
-
/*
* Note: as of today there exist three different versions of pthread_create
* in Linux:
|