l->next = se->clients_cached;
se->clients_cached = l;
}
- /* set session always. If may be 0 if client is not active */
client_set_session(cl, se);
l = xmalloc(sizeof(*l));
client_lock(l->client);
client_set_session(l->client, 0);
client_set_database(l->client, 0);
+ client_mark_dead(l->client);
client_unlock(l->client);
client_destroy(l->client);
xfree(l);
void session_destroy(struct session *se)
{
struct session_database *sdb;
- session_log(se, YLOG_LOG, "destroy");
- session_use(-1);
+ int i = session_use(-1);
+
+ session_log(se, YLOG_LOG, "destroy %d", i);
session_remove_cached_clients(se);
for (sdb = se->databases; sdb; sdb = sdb->next)
session->normalize_cache = normalize_cache_create();
session->session_mutex = 0;
pazpar2_mutex_create(&session->session_mutex, tmp_str);
- session_log(session, YLOG_LOG, "create");
- session_use(1);
+ i = session_use(1);
+ session_log(session, YLOG_LOG, "create %d", i);
return session;
}