libthreadpool is a cross-platform C thread pool library. It provides a convenient way for dispatching asynchronous tasks.
Categories
Software DevelopmentLicense
GNU General Public License version 2.0 (GPLv2)Follow libthreadpool
Other Useful Business Software
Enterprise-grade ITSM, for every business
Freshservice is an intuitive, AI-powered platform that helps IT, operations, and business teams deliver exceptional service without the usual complexity. Automate repetitive tasks, resolve issues faster, and provide seamless support across the organization. From managing incidents and assets to driving smarter decisions, Freshservice makes it easy to stay efficient and scale with confidence.
Rate This Project
Login To Rate This Project
User Reviews
-
can you find out more bugs?
-
In a word, it is very useful. but there are a lot bugs. eg: static TPBOOL tp_add_thread(tp_thread_pool *this){ int err; tp_thread_info *new_thread; if( this->max_th_num <= this->cur_th_num ) return FALSE; //malloc new thread info struct new_thread = &this->thread_info[this->cur_th_num]; //init new thread's cond & mutex pthread_cond_init(&new_thread->thread_cond, NULL); pthread_mutex_init(&new_thread->thread_lock, NULL); //init status is busy new_thread->is_busy = TRUE; //add current thread number in the pool. this->cur_th_num++; err = pthread_create(&new_thread->thread_id, NULL, tp_work_thread, this); if(0 != err){ free(new_thread); return FALSE; } printf("tp_add_thread: creat work thread %d\n", this->thread_info[this->cur_th_num-1].thread_id); return TRUE; } when pthread_create fail, it's wrong to free new_thread because new_thread isn't malloc by this function.The right way is try to rollback as the following: pthread_mutex_destroy(&new_thread->thread_lock); pthread_cond_destroy(&new_thread->thread_cond); new_thread->is_busy = FALSE; this->cur_th_num--;