static void kms_recorder_endpoint_state_changed (KmsRecorderEndpoint * self, KmsUriEndpointState state) { KMS_ELEMENT_LOCK (KMS_ELEMENT (self)); if (!self->priv->stopping || state == KMS_URI_ENDPOINT_STATE_STOP) { KMS_URI_ENDPOINT_GET_CLASS (self)->change_state (KMS_URI_ENDPOINT (self), state); } KMS_ELEMENT_UNLOCK (KMS_ELEMENT (self)); }
static void kms_recorder_endpoint_state_changed (KmsRecorderEndpoint * self, KmsUriEndpointState state) { KMS_URI_ENDPOINT_GET_CLASS (self)->change_state (KMS_URI_ENDPOINT (self), state); KMS_ELEMENT_UNLOCK (KMS_ELEMENT (self)); g_mutex_lock (&self->priv->state_manager.mutex); self->priv->state_manager.changing = FALSE; if (self->priv->state_manager.locked > 0) g_cond_broadcast (&self->priv->state_manager.cond); g_mutex_unlock (&self->priv->state_manager.mutex); KMS_ELEMENT_LOCK (KMS_ELEMENT (self)); }