static void kms_recorder_endpoint_release_pending_requests (KmsRecorderEndpoint * self) { gst_task_pool_cleanup (self->priv->pool); g_clear_object (&self->priv->mux); gst_object_unref (self->priv->pool); }
static void init_klass_pool (GstTaskClass * klass) { g_static_mutex_lock (&pool_lock); if (klass->pool) { gst_task_pool_cleanup (klass->pool); gst_object_unref (klass->pool); } klass->pool = gst_task_pool_new (); gst_task_pool_prepare (klass->pool, NULL); g_static_mutex_unlock (&pool_lock); }
static void kms_recorder_endpoint_release_pending_requests (KmsRecorderEndpoint * self) { g_mutex_lock (&self->priv->state_manager.mutex); while (self->priv->state_manager.changing || self->priv->state_manager.locked > 0) { GST_WARNING ("Waiting to all process blocked"); self->priv->state_manager.locked++; g_cond_wait (&self->priv->state_manager.cond, &self->priv->state_manager.mutex); self->priv->state_manager.locked--; } g_mutex_unlock (&self->priv->state_manager.mutex); gst_task_pool_cleanup (self->priv->pool); g_clear_object (&self->priv->mux); gst_object_unref (self->priv->pool); g_cond_clear (&self->priv->state_manager.cond); g_mutex_clear (&self->priv->state_manager.mutex); }