-/* $Id: sel_thread.c,v 1.4 2007-04-23 08:06:21 adam Exp $
- Copyright (c) 2006-2007, Index Data.
-
-This file is part of Pazpar2.
+/* This file is part of Pazpar2.
+ 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
for more details.
You should have received a copy of the GNU General Public License
-along with Pazpar2; see the file LICENSE. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
- */
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
#if HAVE_CONFIG_H
-#include "cconfig.h"
+#include <config.h>
#endif
#include "sel_thread.h"
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 */
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);
pthread_mutex_unlock(&p->mutex);
/* wake up select/poll with a single byte */
- write(p->fd[1], "", 1);
+ (void) write(p->fd[1], "", 1);
}
pthread_mutex_unlock(&p->mutex);
return 0;
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;
}
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);
}
p->free_queue = work_this;
data = work_this->data;
- read(p->fd[0], read_buf, 1);
+ (void) read(p->fd[0], read_buf, 1);
}
pthread_mutex_unlock(&p->mutex);
return data;
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/
+