参照元†
返り値†
static inline GOmxImp *
request_imp (const gchar * name)
{
GOmxImp *imp = NULL;
g_mutex_lock (imp_mutex);
imp = g_hash_table_lookup (implementations, name);
if (!imp) {
imp = imp_new (name);
if (imp)
g_hash_table_insert (implementations, g_strdup (name), imp);
}
g_mutex_unlock (imp_mutex);
if (!imp)
return NULL;
g_mutex_lock (imp->mutex);
if (imp->client_count == 0) {
OMX_ERRORTYPE omx_error;
omx_error = imp->sym_table.init ();
if (omx_error) {
g_mutex_unlock (imp->mutex);
return NULL;
}
}
imp->client_count++;
g_mutex_unlock (imp->mutex);
return imp;
}
コメント†