[PATCH 02/31] introduce thread_cond_init and refrase thread_cond_create.
Niv Sardi <[email protected]>
| Newsgroups | gmane.comp.audio.icecast.devel |
|---|---|
| Message-ID | <[email protected]> |
thread_cond_create doesn't actually create a new thread cond (it calls pthread_cond_init). Make it actually alloc a new cond structure (that will have to be freed with free()), and add thread_cond_init retaining old behaviour. Implement change in connection.c Signed-off-by: Niv Sardi <[email protected]> --- src/connection.c | 2 +- src/thread/thread.c | 13 ++++++++++++- src/thread/thread.h | 5 +++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/connection.c b/src/connection.c index 5cc922a..97fe7e9 100644 --- a/src/connection.c +++ b/src/connection.c @@ -144,7 +144,7 @@ void connection_initialize(void) thread_spin_create (&_connection_lock); thread_mutex_create(&move_clients_mutex); thread_rwlock_create(&_source_shutdown_rwlock); - thread_cond_create(&global.shutdown_cond); + thread_cond_init(&global.shutdown_cond); _req_queue = NULL; _req_queue_tail = &_req_queue; _con_queue = NULL; diff --git a/src/thread/thread.c b/src/thread/thread.c index deeb695..e5e0ac6 100644 --- a/src/thread/thread.c +++ b/src/thread/thread.c @@ -493,12 +493,23 @@ void thread_mutex_unlock_c(mutex_t *mutex, int line, char *file) #endif /* DEBUG_MUTEXES */ } -void thread_cond_create_c(cond_t *cond, int line, char *file) +void thread_cond_init(cond_t *cond) { pthread_cond_init(&cond->sys_cond, NULL); pthread_mutex_init(&cond->cond_mutex, NULL); } +cond_t *thread_cond_create(void) +{ + cond_t *cond = calloc (1, sizeof(cond_t)); + if (!cond) + return; + + thread_cond_init(cond); + + return cond; +} + void thread_cond_destroy(cond_t *cond) { pthread_mutex_destroy(&cond->cond_mutex); diff --git a/src/thread/thread.h b/src/thread/thread.h index fe4e4a0..1484ff7 100644 --- a/src/thread/thread.h +++ b/src/thread/thread.h @@ -111,7 +111,7 @@ typedef mutex_t spin_t; #define thread_mutex_create(x) thread_mutex_create_c(x,__LINE__,__FILE__) #define thread_mutex_lock(x) thread_mutex_lock_c(x,__LINE__,__FILE__) #define thread_mutex_unlock(x) thread_mutex_unlock_c(x,__LINE__,__FILE__) -#define thread_cond_create(x) thread_cond_create_c(x,__LINE__,__FILE__) +//#define thread_cond_create() thread_cond_create_c(__LINE__,__FILE__) #define thread_cond_signal(x) thread_cond_signal_c(x,__LINE__,__FILE__) #define thread_cond_broadcast(x) thread_cond_broadcast_c(x,__LINE__,__FILE__) #define thread_cond_wait(x) thread_cond_wait_c(x,__LINE__,__FILE__) @@ -169,7 +169,8 @@ void thread_mutex_create_c(mutex_t *mutex, int line, char *file); void thread_mutex_lock_c(mutex_t *mutex, int line, char *file); void thread_mutex_unlock_c(mutex_t *mutex, int line, char *file); void thread_mutex_destroy(mutex_t *mutex); -void thread_cond_create_c(cond_t *cond, int line, char *file); +void thread_cond_init(cond_t *cond); +cond_t *thread_cond_create(void); void thread_cond_signal_c(cond_t *cond, int line, char *file); void thread_cond_broadcast_c(cond_t *cond, int line, char *file); void thread_cond_wait_c(cond_t *cond, int line, char *file); -- 1.7.1