+struct http_sessions {
+ struct http_session *session_list;
+ YAZ_MUTEX mutex;
+};
+
+http_sessions_t http_sessions_create(void)
+{
+ http_sessions_t hs = xmalloc(sizeof(*hs));
+ hs->session_list = 0;
+ hs->mutex = 0;
+ yaz_mutex_create(&hs->mutex);
+ return hs;
+}
+
+void http_sessions_destroy(http_sessions_t hs)
+{
+ if (hs)
+ {
+ struct http_session *s = hs->session_list;
+ while (s)
+ {
+ struct http_session *s_next = s->next;
+ iochan_destroy(s->timeout_iochan);
+ destroy_session(s->psession);
+ nmem_destroy(s->nmem);
+ s = s_next;
+ }
+ yaz_mutex_destroy(&hs->mutex);
+ xfree(hs);
+ }
+}