#include <string.h>
#include <unistd.h>
#include <fcntl.h>
+#include <pthread.h>
#include <pkgmgr-info.h>
#include <package-manager.h>
} app_context_t;
static app_context_t __context;
+static pthread_mutex_t __mutex = PTHREAD_MUTEX_INITIALIZER;
static int app_info_convert_str_property(const char *property, char **converted_property)
{
static void __app_context_initialize(void)
{
- if (__context.initialized)
+ pthread_mutex_lock(&__mutex);
+ if (__context.initialized) {
+ pthread_mutex_unlock(&__mutex);
return;
+ }
if (getuid() < REGULAR_UID_MIN) {
__context.initialized = true;
+ pthread_mutex_unlock(&__mutex);
return;
}
aul_app_get_appid_bypid(getpid(), __context.appid,
sizeof(__context.appid));
__context.initialized = true;
+ pthread_mutex_unlock(&__mutex);
}
static int __app_info_create_by_alias_appid(const char *app_id,
int ret;
__app_context_initialize();
- if (__context.appid != NULL && !strcmp(__context.appid, app_id))
+ if (__context.appid[0] != '\0' && !strcmp(__context.appid, app_id))
return APP_MANAGER_ERROR_INVALID_PARAMETER;
ret = aul_svc_get_appid_by_alias_appid(app_id, &real_appid);