Removed unlocking/lock of clients as in master.
[pazpar2-moved-to-github.git] / src / session.c
index 3034f7e..61c26b7 100644 (file)
@@ -359,7 +359,7 @@ static int prepare_map(struct session *se, struct session_database *sdb)
             }
         }
         sdb->map = normalize_cache_get(se->normalize_cache,
-                                       se->service, s);
+                                       se->service->server->config, s);
         if (!sdb->map)
             return -1;
     }
@@ -523,8 +523,8 @@ enum pazpar2_error_code search(struct session *se,
     session_enter(se);
     reclist_destroy(se->reclist);
     se->reclist = 0;
-    nmem_reset(se->nmem);
     relevance_destroy(&se->relevance);
+    nmem_reset(se->nmem);
     se->total_records = se->total_hits = se->total_merged = 0;
     se->num_termlists = 0;
     live_channels = select_targets(se, filter);
@@ -669,6 +669,7 @@ void destroy_session(struct session *s)
 {
     struct session_database *sdb;
 
+    yaz_log(YLOG_DEBUG, "%p Pazpar2 session destroy", s);
     session_remove_clients(s);
 
     for (sdb = s->databases; sdb; sdb = sdb->next)
@@ -688,7 +689,7 @@ struct session *new_session(NMEM nmem, struct conf_service *service,
     int i;
     struct session *session = nmem_malloc(nmem, sizeof(*session));
 
-    yaz_log(YLOG_DEBUG, "New Pazpar2 session");
+    yaz_log(YLOG_DEBUG, "%p New Pazpar2 session", session);
 
     session->service = service;
     session->relevance = 0;
@@ -1163,14 +1164,10 @@ int ingest_record(struct client *cl, const char *rec,
         xmlFreeDoc(xdoc);
         return -1;
     }
-    client_unlock(cl);
     session_enter(se);
-    client_lock(cl);
     if (client_get_session(cl) == se)
         ret = ingest_to_cluster(cl, xdoc, root, record_no, mergekey_norm);
-    client_unlock(cl);
     session_leave(se);
-    client_lock(cl);
     
     xmlFreeDoc(xdoc);
     return ret;