projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use initial-exec TLS model
[lttng-ust.git]
/
liblttng-ust-libc-wrapper
/
lttng-ust-pthread.c
diff --git
a/liblttng-ust-libc-wrapper/lttng-ust-pthread.c
b/liblttng-ust-libc-wrapper/lttng-ust-pthread.c
index fd3af1105a961422e276671a483b18c81a80389a..6554a47afe7057f3b8c2c21147574c2f77d5ad09 100644
(file)
--- a/
liblttng-ust-libc-wrapper/lttng-ust-pthread.c
+++ b/
liblttng-ust-libc-wrapper/lttng-ust-pthread.c
@@
-17,7
+17,14
@@
*/
#define _GNU_SOURCE
*/
#define _GNU_SOURCE
+/*
+ * Do _not_ define _LGPL_SOURCE because we don't want to create a
+ * circular dependency loop between this malloc wrapper, liburcu and
+ * libc.
+ */
#include <lttng/ust-dlfcn.h>
#include <lttng/ust-dlfcn.h>
+#include <urcu/tls-compat.h>
+#include <helper.h>
#include <pthread.h>
#define TRACEPOINT_DEFINE
#include <pthread.h>
#define TRACEPOINT_DEFINE
@@
-25,7
+32,7
@@
#define TP_IP_PARAM ip
#include "ust_pthread.h"
#define TP_IP_PARAM ip
#include "ust_pthread.h"
-static
__thread int thread_in_trace
;
+static
DEFINE_URCU_TLS_IE(int, thread_in_trace)
;
int pthread_mutex_lock(pthread_mutex_t *mutex)
{
int pthread_mutex_lock(pthread_mutex_t *mutex)
{
@@
-48,10
+55,10
@@
int pthread_mutex_lock(pthread_mutex_t *mutex)
thread_in_trace = 1;
tracepoint(lttng_ust_pthread, pthread_mutex_lock_req, mutex,
thread_in_trace = 1;
tracepoint(lttng_ust_pthread, pthread_mutex_lock_req, mutex,
-
__builtin_return_address(0
));
+
LTTNG_UST_CALLER_IP(
));
retval = mutex_lock(mutex);
tracepoint(lttng_ust_pthread, pthread_mutex_lock_acq, mutex,
retval = mutex_lock(mutex);
tracepoint(lttng_ust_pthread, pthread_mutex_lock_acq, mutex,
- retval,
__builtin_return_address(0
));
+ retval,
LTTNG_UST_CALLER_IP(
));
thread_in_trace = 0;
return retval;
}
thread_in_trace = 0;
return retval;
}
@@
-78,7
+85,7
@@
int pthread_mutex_trylock(pthread_mutex_t *mutex)
thread_in_trace = 1;
retval = mutex_trylock(mutex);
tracepoint(lttng_ust_pthread, pthread_mutex_trylock, mutex,
thread_in_trace = 1;
retval = mutex_trylock(mutex);
tracepoint(lttng_ust_pthread, pthread_mutex_trylock, mutex,
- retval,
__builtin_return_address(0
));
+ retval,
LTTNG_UST_CALLER_IP(
));
thread_in_trace = 0;
return retval;
}
thread_in_trace = 0;
return retval;
}
@@
-105,7
+112,7
@@
int pthread_mutex_unlock(pthread_mutex_t *mutex)
thread_in_trace = 1;
retval = mutex_unlock(mutex);
tracepoint(lttng_ust_pthread, pthread_mutex_unlock, mutex,
thread_in_trace = 1;
retval = mutex_unlock(mutex);
tracepoint(lttng_ust_pthread, pthread_mutex_unlock, mutex,
- retval,
__builtin_return_address(0
));
+ retval,
LTTNG_UST_CALLER_IP(
));
thread_in_trace = 0;
return retval;
}
thread_in_trace = 0;
return retval;
}
This page took
0.024642 seconds
and
4
git commands to generate.