ingest_record: lock client, then session
authorAdam Dickmeiss <adam@indexdata.dk>
Wed, 28 Apr 2010 08:32:49 +0000 (10:32 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Wed, 28 Apr 2010 08:32:49 +0000 (10:32 +0200)
lock client, then session rather than the reverse way. This
saves us locking but more importantly prevents that session
gets destroyed under our feet (while client and session is
not locked).

src/session.c

index 14b9a2c..309d9ff 100644 (file)
@@ -1172,14 +1172,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;