diff options
author | Tobias Brunner <tobias@strongswan.org> | 2011-10-03 14:57:07 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2011-10-03 14:57:07 +0200 |
commit | 242f7c857f761394bd6ca5b9afba6a3e6a9c4bad (patch) | |
tree | 762ee085973ce6488b2c991e1e0a984613c712c7 | |
parent | 71b6235ad817944535c3354e452dc16ddcb4d199 (diff) | |
download | strongswan-242f7c857f761394bd6ca5b9afba6a3e6a9c4bad.tar.bz2 strongswan-242f7c857f761394bd6ca5b9afba6a3e6a9c4bad.tar.xz |
Migrated thread_value_t to INIT/METHOD macros.
-rw-r--r-- | src/libstrongswan/threading/thread_value.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/libstrongswan/threading/thread_value.c b/src/libstrongswan/threading/thread_value.c index 8f2a8846c..3fa70acb2 100644 --- a/src/libstrongswan/threading/thread_value.c +++ b/src/libstrongswan/threading/thread_value.c @@ -35,27 +35,20 @@ struct private_thread_value_t { }; - -/** - * Implementation of thread_value_t.set. - */ -static void set(private_thread_value_t *this, void *val) +METHOD(thread_value_t, set, void, + private_thread_value_t *this, void *val) { pthread_setspecific(this->key, val); } -/** - * Implementation of thread_value_t.get. - */ -static void *get(private_thread_value_t *this) +METHOD(thread_value_t, get, void*, + private_thread_value_t *this) { return pthread_getspecific(this->key); } -/** - * Implementation of thread_value_t.destroy. - */ -static void destroy(private_thread_value_t *this) +METHOD(thread_value_t, destroy, void, + private_thread_value_t *this) { pthread_key_delete(this->key); free(this); @@ -67,10 +60,15 @@ static void destroy(private_thread_value_t *this) */ thread_value_t *thread_value_create(thread_cleanup_t destructor) { - private_thread_value_t *this = malloc_thing(private_thread_value_t); - this->public.set = (void(*)(thread_value_t*,void*))set; - this->public.get = (void*(*)(thread_value_t*))get; - this->public.destroy = (void(*)(thread_value_t*))destroy; + private_thread_value_t *this; + + INIT(this, + .public = { + .set = _set, + .get = _get, + .destroy = _destroy, + }, + ); pthread_key_create(&this->key, destructor); return &this->public; |