Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/pazpar2
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 19 Apr 2010 10:59:31 +0000 (12:59 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 19 Apr 2010 10:59:31 +0000 (12:59 +0200)
1  2 
src/client.c

diff --combined src/client.c
@@@ -617,15 -617,16 +617,16 @@@ struct client *client_create(void
  void client_incref(struct client *c)
  {
      pazpar2_incref(&c->ref_count, c->mutex);
-     yaz_log(YLOG_DEBUG, "client_incref %s %d", client_get_url(c), c->ref_count);
+     yaz_log(YLOG_LOG, "client_incref c=%p %s cnt=%d",
+             c, client_get_url(c), c->ref_count);
  }
  
  int client_destroy(struct client *c)
  {
      if (c)
      {
-         yaz_log(YLOG_DEBUG, "client_destroy %s %d",
-                 client_get_url(c), c->ref_count);
+         yaz_log(YLOG_LOG, "client_destroy c=%p %s cnt=%d",
+                 c, client_get_url(c), c->ref_count);
          if (!pazpar2_decref(&c->ref_count, c->mutex))
          {
              c->next = 0;
              c->pquery = 0;
              xfree(c->cqlquery);
              c->cqlquery = 0;
 -
 -            ZOOM_resultset_destroy(c->resultset);
 +            assert(!c->connection);
 +            assert(!c->resultset);
 +            
              yaz_mutex_destroy(&c->mutex);
              xfree(c);
              return 1;
  
  void client_set_connection(struct client *cl, struct connection *con)
  {
 +    if (cl->resultset)
 +    {
 +        ZOOM_resultset_destroy(cl->resultset);
 +        cl->resultset = 0;
 +    }
      if (con)
      {
          assert(cl->connection == 0);
@@@ -813,7 -808,6 +814,6 @@@ int client_parse_query(struct client *c
  void client_remove_from_session(struct client *c)
  {
      struct session *se;
-     client_incref(c);
  
      se = c->session;
      assert(se);
          c->session = 0;
          c->next = 0;
      }
-     client_destroy(c);
  }
  
  void client_set_session(struct client *cl, struct session *se)