From: Ben Pfaff <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
---
lib/ovs-thread.c | 1 +
lib/ovs-thread.h | 5 +++--
lib/poll-loop.c | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/lib/ovs-thread.c b/lib/ovs-thread.c
index 4d64b92..d0ec9ec 100644
--- a/lib/ovs-thread.c
+++ b/lib/ovs-thread.c
@@ -128,6 +128,7 @@ XPTHREAD_FUNC1(pthread_cond_broadcast, pthread_cond_t *);
typedef void destructor_func(void *);
XPTHREAD_FUNC2(pthread_key_create, pthread_key_t *, destructor_func *);
+XPTHREAD_FUNC2(pthread_setspecific, pthread_key_t, const void *);
void
ovs_mutex_init(const struct ovs_mutex *l_, int type)
diff --git a/lib/ovs-thread.h b/lib/ovs-thread.h
index 9b8eeef..0d54a43 100644
--- a/lib/ovs-thread.h
+++ b/lib/ovs-thread.h
@@ -153,6 +153,7 @@ void xpthread_cond_broadcast(pthread_cond_t *);
#endif
void xpthread_key_create(pthread_key_t *, void (*destructor)(void *));
+void xpthread_setspecific(pthread_key_t, const void *);
void xpthread_create(pthread_t *, pthread_attr_t *, void *(*)(void *), void *);
@@ -277,7 +278,7 @@ void xpthread_create(pthread_t *, pthread_attr_t *, void
*(*)(void *), void *);
\
value = xmalloc(sizeof *value); \
*value = initial_value; \
- pthread_setspecific(NAME##_key, value); \
+ xpthread_setspecific(NAME##_key, value); \
} \
return value; \
}
@@ -348,7 +349,7 @@ void xpthread_create(pthread_t *, pthread_attr_t *, void
*(*)(void *), void *);
NAME##_set_unsafe(TYPE value) \
{ \
TYPE old_value = NAME##_get_unsafe(); \
- pthread_setspecific(NAME##_key, value); \
+ xpthread_setspecific(NAME##_key, value); \
return old_value; \
} \
\
diff --git a/lib/poll-loop.c b/lib/poll-loop.c
index 0f45d98..5f9b9cd 100644
--- a/lib/poll-loop.c
+++ b/lib/poll-loop.c
@@ -275,7 +275,7 @@ poll_loop(void)
loop = pthread_getspecific(key);
if (!loop) {
loop = xzalloc(sizeof *loop);
- pthread_setspecific(key, loop);
+ xpthread_setspecific(key, loop);
}
return loop;
}
--
1.7.9.5
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev