Dynamic mergekey PAZ-868
[pazpar2-moved-to-github.git] / src / eventl.c
index 8fd9a67..5c77f49 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Pazpar2.
- Copyright (C) 2006-2011 Index Data
+ Copyright (C) 2006-2013 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
@@ -20,7 +20,7 @@
 /*
  * Based on  ParaZ - a simple tool for harvesting performance data for
  * parallel operations using Z39.50.
- * Copyright (C) 2006-2011 Index Data ApS
+ * Copyright (C) 2006-2013 Index Data ApS
  * See LICENSE file for details.
  */
 
@@ -72,7 +72,7 @@ static int iochan_use(int delta)
     no_iochans += delta;
     if (delta > 0)
         no_iochans_total += delta;
-    iochans = no_clients;
+    iochans = no_iochans;
     yaz_mutex_leave(g_mutex);
     yaz_log(YLOG_DEBUG, "%s iochans=%d", delta == 0 ? "" : (delta > 0 ? "INC" : "DEC"), iochans);
     return iochans;
@@ -123,7 +123,7 @@ IOCHAN iochan_destroy_real(IOCHAN chan)
     IOCHAN next = chan->next;
     if (chan->name)
         xfree(chan->name);
-    xfree(free);
+    xfree(chan);
     iochan_use(-1);
     return next;
 }
@@ -336,7 +336,7 @@ static int event_loop(iochan_man_t man, IOCHAN *iochans) {
         for (nextp = iochans; *nextp;) {
             IOCHAN p = *nextp;
             if (p->destroyed && p->thread_users == 0) {
-                *nextp = iochan_destroy_real(iochan);
+                *nextp = iochan_destroy_real(p);
             } else
                 nextp = &p->next;
         }