add function blocked_queue_terminate_all

pull/37/head
yuqing 2018-06-13 10:12:34 +08:00
parent 37eeef3f23
commit d664e70fdb
2 changed files with 18 additions and 1 deletions

View File

@ -45,7 +45,13 @@ int common_blocked_queue_init_ex(struct common_blocked_queue *queue,
void common_blocked_queue_destroy(struct common_blocked_queue *queue); void common_blocked_queue_destroy(struct common_blocked_queue *queue);
static inline void common_blocked_queue_terminate(struct common_blocked_queue *queue, const int count) static inline void common_blocked_queue_terminate(struct common_blocked_queue *queue)
{
pthread_cond_signal(&(queue->cond));
}
static inline void common_blocked_queue_terminate_all(
struct common_blocked_queue *queue, const int count)
{ {
int i; int i;
for (i=0; i<count; i++) for (i=0; i<count; i++)

View File

@ -38,8 +38,19 @@ static inline void blocked_queue_terminate(struct fast_blocked_queue *pQueue)
pthread_cond_signal(&(pQueue->cond)); pthread_cond_signal(&(pQueue->cond));
} }
static inline void blocked_queue_terminate_all(struct fast_blocked_queue *pQueue,
const int count)
{
int i;
for (i=0; i<count; i++)
{
pthread_cond_signal(&(pQueue->cond));
}
}
int blocked_queue_push(struct fast_blocked_queue *pQueue, int blocked_queue_push(struct fast_blocked_queue *pQueue,
struct fast_task_info *pTask); struct fast_task_info *pTask);
struct fast_task_info *blocked_queue_pop(struct fast_blocked_queue *pQueue); struct fast_task_info *blocked_queue_pop(struct fast_blocked_queue *pQueue);
#ifdef __cplusplus #ifdef __cplusplus