/* Clear the queue */ static void jobqueue_clear(thpool_* thpool_p){ while(thpool_p->jobqueue_p->len){ free(jobqueue_pull(thpool_p)); } thpool_p->jobqueue_p->front = NULL; thpool_p->jobqueue_p->rear = NULL; bsem_reset(thpool_p->jobqueue_p->has_jobs); thpool_p->jobqueue_p->len = 0; }
/* Clear the queue */ static void jobqueue_clear(jobqueue* jobqueue_p){ while(jobqueue_p->len){ free(jobqueue_pull(jobqueue_p)); } jobqueue_p->front = NULL; jobqueue_p->rear = NULL; bsem_reset(jobqueue_p->has_jobs); jobqueue_p->len = 0; }
/* Clear the queue */ static void jobqueue_clear(ThPool* thpool) { WorkGroup* group; int size; do { group = jobqueue_pull(thpool, -1); if (group == NULL) { size = 0; } else { size = group->size; free(group->jobs); free(group); } } while (size > 0); thpool->jobqueue->front = NULL; thpool->jobqueue->rear = NULL; bsem_reset(thpool->jobqueue->has_jobs); thpool->jobqueue->len = 0; thpool->jobqueue->group_front = NULL; thpool->jobqueue->total_time = 0; thpool->jobqueue->highest_expected_return = 0; }