Check/release preferred block on recieved records
[pazpar2-moved-to-github.git] / src / session.c
index f7c0b99..4d64e32 100644 (file)
@@ -436,7 +436,7 @@ void session_alert_watch(struct session *s, int what)
         session_watchfun fun;
 
         http_remove_observer(s->watchlist[what].obs);
-        fun = s->watchlist[what].fun;
+        fun  = s->watchlist[what].fun;
         data = s->watchlist[what].data;
 
         /* reset watch before fun is invoked - in case fun wants to set
@@ -446,6 +446,7 @@ void session_alert_watch(struct session *s, int what)
         s->watchlist[what].obs = 0;
 
         session_leave(s);
+        yaz_log(YLOG_DEBUG, "session_alert_watch: %d calling function: %p", what, fun);
         fun(data);
     }
     else
@@ -509,6 +510,19 @@ int session_active_clients(struct session *s)
     return res;
 }
 
+int session_is_preferred_clients_ready(struct session *s)
+{
+    struct client_list *l;
+    int res = 0;
+
+    for (l = s->clients; l; l = l->next)
+        if (client_is_active_preferred(l->client))
+            res++;
+    yaz_log(YLOG_DEBUG, "%p Session has %d active preferred clients.", s, res);
+    return res == 0;
+}
+
+
 
 enum pazpar2_error_code search(struct session *se,
                                const char *query,