Fix svace issue 40/288940/1 accepted/tizen_6.5_unified tizen_6.5 accepted/tizen/6.5/unified/20230302.130315 submit/tizen_6.5/20230227.020616
authorYoungHun Kim <yh8004.kim@samsung.com>
Wed, 22 Feb 2023 06:22:56 +0000 (15:22 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Sun, 26 Feb 2023 23:16:58 +0000 (08:16 +0900)
Change-Id: I447be9cf1bacaff64a8d61d58387cbeed4afe9e0

packaging/mused.spec
server/src/muse_server_system.c

index b94ea12777547ed69eb364643cb8ed8827b7ce4d..23888504ed9e38d55ee4edadad7720fdba405416 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mused
 Summary:    A multimedia daemon
-Version:    0.3.154
+Version:    0.3.155
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 602c93dbb7f43d99e50a4373fa78280bcba82f7f..bb88252ed21d524b8af2390d8b62c74564df440f 100644 (file)
@@ -320,26 +320,34 @@ static gboolean _ms_system_cpu_usage_cb(gpointer user_data)
 
        sscanf(buf, "cpu %llu %llu %llu %llu", &u, &n, &s, &i);
 
-       u -= system->st.user;
-       n -= system->st.nice;
-       s -= system->st.system;
-       i -= system->st.idle;
+       u = u > system->st.user ? u - system->st.user : 0;
+       n = n > system->st.nice ? n - system->st.nice : 0;
+       s = s > system->st.system ? s - system->st.system : 0;
+       i = i > system->st.idle ? i - system->st.idle : 0;
 
        system->st.user += u;
        system->st.nice += n;
        system->st.system += s;
        system->st.idle += i;
 
-       system->st.usage = (int)100 * (u + n + s) / (u + n + s + i);
+       if (u + n + s + i == 0) {
+               LOGW("[#%d] cpu usage is 0%%", system->st.counter);
+               return G_SOURCE_REMOVE;
+       }
+
+       system->st.usage = (int)(100 * ((double)(u + n + s) / (u + n + s + i)));
        LOGD("[#%d] cpu usage %d %%", system->st.counter, system->st.usage);
 
-       if (system->st.usage < cpu_threshold)
+       if (system->st.usage < cpu_threshold) {
+               LOGI("[#%d] cpu usage (%d) < cpu_threshold (%d)", system->st.counter, system->st.usage, cpu_threshold);
                return G_SOURCE_REMOVE;
+       }
 
        system->st.counter++;
 
        if (system->st.counter >= MUSE_STAT_CHECK_COUNT) {
-               ms_log_process_info(ms_get_instance()->pid);
+               if (ms_get_instance())
+                       ms_log_process_info(ms_get_instance()->pid);
 
                snprintf(err_msg, sizeof(err_msg), "[CPU BUSY] %d >= %d %%", system->st.usage, cpu_threshold);