From: jongmyeongko Date: Fri, 11 Nov 2016 12:51:46 +0000 (+0900) Subject: apply retry logic to get an user type using gum api. X-Git-Tag: accepted/tizen/3.0/common/20161114.143016^0 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fappfw%2Fpkgmgr-server.git;a=commitdiff_plain;h=e85d6878662f18050a54369fb36aabf6a578b360 apply retry logic to get an user type using gum api. Change-Id: I3c72109483737e0ba8281cadde48b24e9f7d2928 Signed-off-by: jongmyeongko --- diff --git a/src/request.c b/src/request.c index ad964c1..7a5ba92 100644 --- a/src/request.c +++ b/src/request.c @@ -11,6 +11,8 @@ #include "pkgmgr-server.h" #include "package-manager.h" +#define RETRY_MAX 5 +#define RETRY_WAIT_USEC (1000000 / 2) /* 0.5 sec */ #define PKGMGR_DBUS_SERVICE "org.tizen.pkgmgr" #define PKGMGR_DBUS_OBJECT_PATH "/org/tizen/pkgmgr" @@ -200,10 +202,21 @@ static int __is_admin_user(uid_t uid) { GumUser *guser; GumUserType ut = GUM_USERTYPE_NONE; + int retry_cnt = 0; + + do { + guser = gum_user_get_sync(uid, FALSE); + if (guser == NULL) { + ERR("cannot get user information from gumd, retry"); + retry_cnt++; + usleep(RETRY_WAIT_USEC); + continue; + } + break; + } while (retry_cnt <= RETRY_MAX); - guser = gum_user_get_sync(uid, FALSE); if (guser == NULL) { - ERR("cannot get user information from gumd"); + ERR("cannot get user information from gumd, failed"); return -1; }