X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsel_thread.c;h=0677761950048a9d99394e606d3808604a1f01e9;hb=8dca41e227ef955baccff56add572b72d69f7b66;hp=6e0706864ede1d6ca3cbde362247fb962fa65bb5;hpb=11994049975d40a0010d0dca01156bc80171b448;p=pazpar2-moved-to-github.git diff --git a/src/sel_thread.c b/src/sel_thread.c index 6e07068..0677761 100644 --- a/src/sel_thread.c +++ b/src/sel_thread.c @@ -69,11 +69,13 @@ struct sel_thread { void (*work_destroy)(void *work_data); }; +static int input_queue_length = 0; + static void *sel_thread_handler(void *vp) { sel_thread_t p = (sel_thread_t) vp; - while(1) + while (1) { struct work_item *work_this = 0; /* wait for some work */ @@ -87,6 +89,8 @@ static void *sel_thread_handler(void *vp) assert(p->input_queue); work_this = queue_remove_last(&p->input_queue); + input_queue_length--; + yaz_log(YLOG_DEBUG, "input queue length after pop: %d", input_queue_length); assert(work_this); pthread_mutex_unlock(&p->mutex); @@ -140,7 +144,7 @@ sel_thread_t sel_thread_create(void (*work_handler)(void *work_data), p->thread_id = nmem_malloc(nmem, sizeof(*p->thread_id) * p->no_threads); for (i = 0; i < p->no_threads; i++) - pthread_create (p->thread_id + i, 0, sel_thread_handler, p); + pthread_create(p->thread_id + i, 0, sel_thread_handler, p); return p; } @@ -185,7 +189,8 @@ void sel_thread_add(sel_thread_t p, void *data) work_p->data = data; work_p->next = p->input_queue; p->input_queue = work_p; - + input_queue_length++; + yaz_log(YLOG_DEBUG, "sel_thread_add: Input queue length after push: %d", input_queue_length); pthread_cond_signal(&p->input_data); pthread_mutex_unlock(&p->mutex); }