Fix svace issue 41/288941/1 accepted/tizen_6.0_unified tizen_6.0 accepted/tizen/6.0/unified/20230301.210716 submit/tizen_6.0/20230227.020630
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:18:44 +0000 (08:18 +0900)
Change-Id: I2a7b962ae4419560472266fb93ec26d6791591d3

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

index f3ef452d9139168cfc665e2602175d6e2cc948dc..c3f1927d636fc7e28b7aa6de3bf6d23eb5741e83 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mused
 Summary:    A multimedia daemon
-Version:    0.3.141
+Version:    0.3.142
 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);