#include "rmi/manager.h"
+#define GUMD_RETRY_COUNT 5
#define CGROUP_SUBSYSTEM "krate"
#define PRIVILEGE_INTERNAL_PLATFORM "http://tizen.org/privilege/internal/default/platform"
#define KRATE_DELEGATOR_APP "org.tizen.keyguard"
try {
//create krate user by gumd
- GumUser* guser = NULL;
- while (guser == NULL) {
- guser = gum_user_create_sync(FALSE);
+ gboolean ret = false;
+ for (int i = 0; i < GUMD_RETRY_COUNT && !ret; i++) {
+ GumUser* guser = NULL;
+ for (int i = 0; i < GUMD_RETRY_COUNT && guser == NULL; i++) {
+ guser = gum_user_create_sync(FALSE);
+ }
+ g_object_set(G_OBJECT(guser), "username", name.c_str(),
+ "usertype", GUM_USERTYPE_SECURITY, NULL);
+ ret = gum_user_add_sync(guser);
+ g_object_unref(guser);
}
- g_object_set(G_OBJECT(guser), "username", name.c_str(),
- "usertype", GUM_USERTYPE_SECURITY, NULL);
- gboolean ret = gum_user_add_sync(guser);
- g_object_unref(guser);
if (!ret) {
throw runtime::Exception("Failed to remove user (" + name + ") by gumd");
::tzplatform_reset_user();
//remove krate user
- GumUser* guser = NULL;
- while (guser == NULL) {
- guser = gum_user_get_sync(user.getUid(), FALSE);
+ gboolean ret = false;
+ for (int i = 0; i < GUMD_RETRY_COUNT && !ret; i++) {
+ GumUser* guser = NULL;
+ for (int i = 0; i < GUMD_RETRY_COUNT && guser == NULL; i++) {
+ guser = gum_user_get_sync(user.getUid(), FALSE);
+ }
+ ret = gum_user_delete_sync(guser, TRUE);
+ g_object_unref(guser);
}
- gboolean ret = gum_user_delete_sync(guser, TRUE);
- g_object_unref(guser);
if (!ret) {
throw runtime::Exception("Failed to remove user " + name + "(" + std::to_string(user.getUid()) + ") by gumd");