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);
}
Exemple #2
0
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);
}