Lines Matching +full:config +full:- +full:cond
2 * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
3 * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
4 * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
16 * - Redistributions of source code must retain the above
20 * - Redistributions in binary form must reproduce the above
43 # include <config.h>
53 pthread_mutex_unlock(&((cl_thread_pool_t *) arg)->mutex); in cleanup_mutex()
61 pthread_mutex_lock(&p_thread_pool->mutex); in thread_pool_routine()
63 while (!p_thread_pool->events) in thread_pool_routine()
64 pthread_cond_wait(&p_thread_pool->cond, in thread_pool_routine()
65 &p_thread_pool->mutex); in thread_pool_routine()
66 p_thread_pool->events--; in thread_pool_routine()
69 (*p_thread_pool->pfn_callback) (p_thread_pool->context); in thread_pool_routine()
90 pthread_mutex_init(&p_thread_pool->mutex, NULL); in cl_thread_pool_init()
91 pthread_cond_init(&p_thread_pool->cond, NULL); in cl_thread_pool_init()
93 p_thread_pool->events = 0; in cl_thread_pool_init()
95 p_thread_pool->pfn_callback = pfn_callback; in cl_thread_pool_init()
96 p_thread_pool->context = context; in cl_thread_pool_init()
98 p_thread_pool->tid = calloc(count, sizeof(*p_thread_pool->tid)); in cl_thread_pool_init()
99 if (!p_thread_pool->tid) { in cl_thread_pool_init()
104 p_thread_pool->running_count = count; in cl_thread_pool_init()
107 if (pthread_create(&p_thread_pool->tid[i], NULL, in cl_thread_pool_init()
123 for (i = 0; i < p_thread_pool->running_count; i++) in cl_thread_pool_destroy()
124 if (p_thread_pool->tid[i]) in cl_thread_pool_destroy()
125 pthread_cancel(p_thread_pool->tid[i]); in cl_thread_pool_destroy()
127 for (i = 0; i < p_thread_pool->running_count; i++) in cl_thread_pool_destroy()
128 if (p_thread_pool->tid[i]) in cl_thread_pool_destroy()
129 pthread_join(p_thread_pool->tid[i], NULL); in cl_thread_pool_destroy()
131 p_thread_pool->running_count = 0; in cl_thread_pool_destroy()
133 free(p_thread_pool->tid); in cl_thread_pool_destroy()
135 pthread_cond_destroy(&p_thread_pool->cond); in cl_thread_pool_destroy()
136 pthread_mutex_destroy(&p_thread_pool->mutex); in cl_thread_pool_destroy()
138 p_thread_pool->events = 0; in cl_thread_pool_destroy()
145 pthread_mutex_lock(&p_thread_pool->mutex); in cl_thread_pool_signal()
146 p_thread_pool->events++; in cl_thread_pool_signal()
147 ret = pthread_cond_signal(&p_thread_pool->cond); in cl_thread_pool_signal()
148 pthread_mutex_unlock(&p_thread_pool->mutex); in cl_thread_pool_signal()