Fix bug for infinite loop 78/293378/3
authorInkyun Kil <inkyun.kil@samsung.com>
Thu, 25 May 2023 07:28:26 +0000 (16:28 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Fri, 26 May 2023 00:12:34 +0000 (00:12 +0000)
GSourceFunc for g_idle_add should return False to be removed from event sources

Change-Id: I3524ef9c9d7a7dfae96d0634317c36d7e6e8f7d2
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
server/alarm-manager-db.cc

index ccd9cc3..73f564f 100644 (file)
@@ -575,7 +575,7 @@ int GetDbPathForAllInfo(uid_t uid, char** db_path) {
   return ALARMMGR_RESULT_SUCCESS;
 }
 
-gboolean UpdateRelativeAlarms(gpointer user_data) {
+void UpdateRelativeAlarms(gpointer user_data) {
   auto guard = alarmmgr_db->CreateTransactionGuard();
 
   for (GSList* iter = alarm_context.alarms; iter != nullptr;
@@ -587,7 +587,6 @@ gboolean UpdateRelativeAlarms(gpointer user_data) {
   }
 
   guard.Commit();
-  return true;
 }
 
 bool AlarmSetGlobalToDb(__alarm_info_t* alarm_info, bool global) {
@@ -796,14 +795,14 @@ int _get_db_path_for_all_info(uid_t uid, char** db_path) {
 
 gboolean _update_relative_alarms(gpointer user_data) {
   try {
-    return UpdateRelativeAlarms(user_data);
+    UpdateRelativeAlarms(user_data);
   } catch (const tizen_base::DbException& e) {
     LOGE("Exception: %s", e.msg());
-    return false;
   } catch (const std::exception& e) {
     LOGE("Exception: %s", e.what());
-    return false;
   }
+
+  return G_SOURCE_REMOVE;
 }
 
 bool _alarm_set_global_to_db(__alarm_info_t* alarm_info, bool global) {