X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsel_thread.c;h=0677761950048a9d99394e606d3808604a1f01e9;hb=d47362af8b5fa9d6298e783a662fa68ece809040;hp=f33fbb96f49efde65eae3ebd87c9e933b553746a;hpb=f9626956e3c53c8b515e4bf01bc313cfe6015bed;p=pazpar2-moved-to-github.git diff --git a/src/sel_thread.c b/src/sel_thread.c index f33fbb9..0677761 100644 --- a/src/sel_thread.c +++ b/src/sel_thread.c @@ -1,5 +1,5 @@ /* This file is part of Pazpar2. - Copyright (C) 2006-2009 Index Data + Copyright (C) 2006-2010 Index Data Pazpar2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -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); }