Re-factor: move work in client_check_preferred_watch to client_got_records
authorAdam Dickmeiss <adam@indexdata.dk>
Fri, 6 Mar 2015 13:13:03 +0000 (14:13 +0100)
committerAdam Dickmeiss <adam@indexdata.dk>
Fri, 6 Mar 2015 13:13:03 +0000 (14:13 +0100)
src/client.c
src/client.h
src/connection.c

index ad2d2a3..dac30f2 100644 (file)
@@ -543,27 +543,6 @@ static void ingest_raw_record(struct client *cl, ZOOM_record rec)
     client_show_raw_dequeue(cl);
 }
 
-void client_check_preferred_watch(struct client *cl)
-{
-    struct session *se = cl->session;
-    yaz_log(YLOG_DEBUG, "client_check_preferred_watch: %s ", client_get_id(cl));
-    if (se)
-    {
-        client_unlock(cl);
-        /* TODO possible threading issue. Session can have been destroyed */
-        if (session_is_preferred_clients_ready(se)) {
-            session_alert_watch(se, SESSION_WATCH_SHOW_PREF);
-        }
-        else
-            yaz_log(YLOG_DEBUG, "client_check_preferred_watch: Still locked on preferred targets.");
-
-        client_lock(cl);
-    }
-    else
-        yaz_log(YLOG_WARN, "client_check_preferred_watch: %s. No session!", client_get_id(cl));
-
-}
-
 struct suggestions* client_suggestions_create(const char* suggestions_string);
 static void client_suggestions_destroy(struct client *cl);
 
@@ -603,6 +582,11 @@ void client_got_records(struct client *cl)
     struct session *se = cl->session;
     if (se)
     {
+        client_unlock(cl);
+        /* TODO possible threading issue. Session can have been destroyed */
+        if (session_is_preferred_clients_ready(se))
+            session_alert_watch(se, SESSION_WATCH_SHOW_PREF);
+        client_lock(cl);
         if (reclist_get_num_records(se->reclist) > 0)
         {
             client_unlock(cl);
index 6092dfa..e124ac4 100644 (file)
@@ -104,7 +104,6 @@ void client_unlock(struct client *c);
 void client_stop(struct client *c);
 
 int client_has_facet(struct client *cl, const char *name);
-void client_check_preferred_watch(struct client *cl);
 int client_reingest(struct client *cl);
 const char *client_get_facet_limit_local(struct client *cl,
                                          struct session_database *sdb,
index c52fcf3..a25d840 100644 (file)
@@ -274,10 +274,7 @@ static void non_block_events(struct connection *co)
     {
         struct client *cl = co->client;
         if (cl)
-        {
-            client_check_preferred_watch(cl);
             client_got_records(cl);
-        }
     }
 }