projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: use urcu-tls compat with c++ compiler
[urcu.git]
/
include
/
urcu
/
tls-compat.h
diff --git
a/include/urcu/tls-compat.h
b/include/urcu/tls-compat.h
index a2c94ded9cd9833558bb25d19b9908c6f47a9007..431319d608518af222045f9467dfb8081dfaaa8c 100644
(file)
--- a/
include/urcu/tls-compat.h
+++ b/
include/urcu/tls-compat.h
@@
-116,6
+116,7
@@
struct urcu_tls {
type *__tls_access_ ## name(void) \
{ \
static struct urcu_tls __tls_ ## name = { \
type *__tls_access_ ## name(void) \
{ \
static struct urcu_tls __tls_ ## name = { \
+ .key = 0, \
.init_mutex = PTHREAD_MUTEX_INITIALIZER,\
.init_done = 0, \
}; \
.init_mutex = PTHREAD_MUTEX_INITIALIZER,\
.init_done = 0, \
}; \
@@
-132,9
+133,9
@@
struct urcu_tls {
pthread_mutex_unlock(&__tls_ ## name.init_mutex); \
} \
cmm_smp_rmb(); /* read init_done before getting key */ \
pthread_mutex_unlock(&__tls_ ## name.init_mutex); \
} \
cmm_smp_rmb(); /* read init_done before getting key */ \
- __tls_p = pthread_getspecific(__tls_ ## name.key); \
+ __tls_p =
(__typeof__(type) *)
pthread_getspecific(__tls_ ## name.key); \
if (caa_unlikely(__tls_p == NULL)) { \
if (caa_unlikely(__tls_p == NULL)) { \
- __tls_p =
calloc(1, sizeof(type));
\
+ __tls_p =
(__typeof__(type) *) calloc(1, sizeof(type));
\
do_init \
(void) pthread_setspecific(__tls_ ## name.key, \
__tls_p); \
do_init \
(void) pthread_setspecific(__tls_ ## name.key, \
__tls_p); \
This page took
0.023419 seconds
and
4
git commands to generate.