/* Skip if resource was already acquired */
if (MRP_RES_RESOURCE_ACQUIRED == rset->mrp_rset->state) {
MM_RM_DEBUG("rset %p already acquired", rset);
- g_mutex_unlock(&rset->lock);
- return MM_RESOURCE_MANAGER_ERROR_NONE;
+ goto out;
}
if (mrp_res_acquire_resource_set(rset->mrp_rset)) {
MM_RM_ERROR("Failed to acquire rset %p", rset);
- return MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION;
+ ret = MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION;
+ goto out;
}
gint64 end_time = g_get_monotonic_time() + RM_RESOURCE_TIMEOUT * G_TIME_SPAN_MILLISECOND;
ret = MM_RESOURCE_MANAGER_ERROR_INVALID_OPERATION;
} else {
MM_RM_DEBUG("Acquired rset %p", rset);
- ret = MM_RESOURCE_MANAGER_ERROR_NONE;
}
}
+out:
g_mutex_unlock(&rset->lock);
return ret;