Fixed warnings: wrong return parameter. C90 compliant.
[pazpar2-moved-to-github.git] / src / sel_thread.c
index f33fbb9..0677761 100644 (file)
@@ -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);
 }