Skip ealier & last data check of PkgSignal event 69/309469/4
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 11 Apr 2024 06:17:25 +0000 (15:17 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Thu, 11 Apr 2024 06:50:52 +0000 (15:50 +0900)
Before running the esd daemon, it makes blocking status of the caller process.
This patch is to skip eailer & last data check if the event name is PkgSignal.

Change-Id: Id72c63ccf581446c4b02ceae1098dba42e7823c1
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
include/eventsystem_internal.h
src/eventsystem.c

index 961a87d9661ae18578782267af740fd6172fbb56..3f97bf0e6bb4092108b18bc3627423b9c84eddc8 100644 (file)
@@ -303,6 +303,7 @@ extern "C" {
 
 /** This event name is for Pkgmgr-server */
 #define RESERVED_NAME_FOR_USER_PKGMGRSIGNAL "event.signal_agent.tidl_iface_PkgSignal"
+#define RESERVED_NAME_FOR_SYSTEM_PKGMGRSIGNAL "tizen.system.event.tidl_iface_PkgSignal"
 
 #ifdef __cplusplus
 }
index c7856af01e16405139f75f6a3815675dcb64daf9..7ea7e4e169c14955141918e6c2ee9b4b2383ea99 100644 (file)
@@ -363,6 +363,11 @@ static bool __is_pkgmgr_signal_user_event(const char *event_name)
        return false;
 }
 
+static bool __is_pkgmgr_signal_system_event(const char *event_name)
+{
+       return (strcmp(event_name, RESERVED_NAME_FOR_SYSTEM_PKGMGRSIGNAL) == 0);
+}
+
 static int __check_interface_validation_user(char *interface_name)
 {
        int len = strlen(EVENT_SYSTEM_PREFIX);
@@ -1984,7 +1989,9 @@ API int eventsystem_register_application_event(const char *event_name,
        }
 
 #ifdef APPFW_EVENT_SYSTEM_EARLIER_FEATURE
-       __eventsystem_request_earlier_data(event_name, callback, user_data);
+       if (!__is_pkgmgr_signal_system_event(event_name) &&
+                       !__is_pkgmgr_signal_user_event(event_name))
+               __eventsystem_request_earlier_data(event_name, callback, user_data);
 #endif
 
        em = __create_eventmap(interface_name, member_name, event_name,
@@ -2040,7 +2047,9 @@ API int eventsystem_register_application_event(const char *event_name,
                ret = ES_R_ERROR;
        }
 
-       if (*event_type == ES_TYPE_USER)
+       if (*event_type == ES_TYPE_USER &&
+                       !__is_pkgmgr_signal_user_event(event_name) &&
+                       !__is_pkgmgr_signal_system_event(event_name))
                __request_esd_for_last_data(event_name, true);
 end:
        FREE_AND_NULL(interface_name);