#undef DEBUG
+static void gst_rtsp_session_pool_finalize (GObject * object);
+
+
G_DEFINE_TYPE (GstRTSPSessionPool, gst_rtsp_session_pool, G_TYPE_OBJECT);
static void
GObjectClass *gobject_class;
gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->finalize = gst_rtsp_session_pool_finalize;
}
static void
{
pool->lock = g_mutex_new ();
pool->sessions = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, NULL);
+ g_free, g_object_unref);
+}
+
+static void
+gst_rtsp_session_pool_finalize (GObject * object)
+{
+ GstRTSPSessionPool * pool = GST_RTSP_SESSION_POOL (object);
+
+ g_mutex_free (pool->lock);
+ g_hash_table_unref (pool->sessions);
+
+ G_OBJECT_CLASS (gst_rtsp_session_pool_parent_class)->finalize (object);
}
/**
g_mutex_lock (pool->lock);
found = g_hash_table_remove (pool->sessions, sess);
g_mutex_unlock (pool->lock);
-
- if (found) {
- g_object_unref (sess);
- }
}