From: Hwankyu Jhun Date: Tue, 30 May 2017 11:13:37 +0000 (+0900) Subject: Handle widget abnormal exit X-Git-Tag: submit/tizen_3.0/20170601.004300^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b7eb5e9dce42a93b5a7a882a1ce35bf2824dbaa2;p=platform%2Fcore%2Fappfw%2Fwidget-service.git Handle widget abnormal exit While getting AUL_WIDGET_LIFE_CYCLE_EVENT_APP_DEAD event with AUL_K_WIDGET_FAULT data, the __fault_handler will be invoked. Requires: - https://review.tizen.org/gerrit/#/c/131674/ [aul-1] - https://review.tizen.org/gerrit/#/c/131676/ [appcore-widget] - https://review.tizen.org/gerrit/#/c/131685/ [amd] - https://review.tizen.org/gerrit/#/c/131695/ [widget-viewer] Change-Id: Ibccbdc448c59922d40857192d4a342076487e246 Signed-off-by: Hwankyu Jhun --- diff --git a/src/widget_instance.c b/src/widget_instance.c index 4772d2a..d9b169f 100644 --- a/src/widget_instance.c +++ b/src/widget_instance.c @@ -686,6 +686,7 @@ static int __status_handler(const char *endpoint, aul_app_com_result_e e, bundle char *widget_id = NULL; char *instance_id = NULL; char *sender_pkgid = NULL; + char *is_faulted = NULL; int *status; size_t status_sz = 0; struct lifecycle_local_s *cb_info; @@ -697,6 +698,7 @@ static int __status_handler(const char *endpoint, aul_app_com_result_e e, bundle bundle_get_byte(envelope, AUL_K_WIDGET_STATUS, (void **)&status, &status_sz); bundle_get_str(envelope, AUL_K_COM_SENDER_PID, &sender_pid_str); bundle_get_str(envelope, AUL_K_PKGID, &sender_pkgid); + bundle_get_str(envelope, AUL_K_WIDGET_FAULT, &is_faulted); if (widget_id == NULL || status == NULL) { _E("undefined class or instance %s of %s", instance_id, widget_id); @@ -716,7 +718,8 @@ static int __status_handler(const char *endpoint, aul_app_com_result_e e, bundle } } - if (*status == AUL_WIDGET_LIFE_CYCLE_EVENT_APP_DEAD) { + if (*status == AUL_WIDGET_LIFE_CYCLE_EVENT_APP_DEAD && + is_faulted && !strcmp(is_faulted, "true")) { _D("handle dead widget instances"); __fault_handler(sender_pid); }