cpu: update more frequently
This commit is contained in:
parent
dd67c71022
commit
ad7ab21ae5
|
@ -1407,6 +1407,9 @@ evisum_ui_shutdown(Ui *ui)
|
||||||
if (ui->thread_system)
|
if (ui->thread_system)
|
||||||
ecore_thread_cancel(ui->thread_system);
|
ecore_thread_cancel(ui->thread_system);
|
||||||
|
|
||||||
|
if (ui->thread_cpu)
|
||||||
|
ecore_thread_cancel(ui->thread_cpu);
|
||||||
|
|
||||||
if (ui->thread_process)
|
if (ui->thread_process)
|
||||||
ecore_thread_cancel(ui->thread_process);
|
ecore_thread_cancel(ui->thread_process);
|
||||||
|
|
||||||
|
@ -1416,6 +1419,9 @@ evisum_ui_shutdown(Ui *ui)
|
||||||
if (ui->thread_process)
|
if (ui->thread_process)
|
||||||
ecore_thread_wait(ui->thread_process, 1.0);
|
ecore_thread_wait(ui->thread_process, 1.0);
|
||||||
|
|
||||||
|
if (ui->thread_cpu)
|
||||||
|
ecore_thread_wait(ui->thread_cpu, 1.0);
|
||||||
|
|
||||||
_proc_pid_cpu_times_free(ui);
|
_proc_pid_cpu_times_free(ui);
|
||||||
|
|
||||||
if (ui->cpu_list)
|
if (ui->cpu_list)
|
||||||
|
@ -1485,7 +1491,6 @@ _system_info_all_poll_feedback_cb(void *data, Ecore_Thread *thread, void *msg)
|
||||||
if (ecore_thread_check(thread))
|
if (ecore_thread_check(thread))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ui_tab_cpu_update(ui, info);
|
|
||||||
ui_tab_memory_update(ui, info);
|
ui_tab_memory_update(ui, info);
|
||||||
ui_tab_disk_update(ui);
|
ui_tab_disk_update(ui);
|
||||||
ui_tab_misc_update(ui, info);
|
ui_tab_misc_update(ui, info);
|
||||||
|
@ -1547,8 +1552,9 @@ _ui_init(Evas_Object *parent)
|
||||||
ui->sort_type = SORT_BY_PID;
|
ui->sort_type = SORT_BY_PID;
|
||||||
ui->selected_pid = -1;
|
ui->selected_pid = -1;
|
||||||
ui->program_pid = getpid();
|
ui->program_pid = getpid();
|
||||||
ui->disk_visible = ui->cpu_visible = EINA_TRUE;
|
ui->disk_visible = EINA_TRUE;
|
||||||
ui->mem_visible = ui->misc_visible = EINA_TRUE;
|
ui->mem_visible = ui->misc_visible = EINA_TRUE;
|
||||||
|
ui->cpu_visible = EINA_FALSE;
|
||||||
ui->cpu_times = NULL;
|
ui->cpu_times = NULL;
|
||||||
ui->cpu_list = NULL;
|
ui->cpu_list = NULL;
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,7 @@ typedef struct Ui
|
||||||
|
|
||||||
Ecore_Thread *thread_system;
|
Ecore_Thread *thread_system;
|
||||||
Ecore_Thread *thread_process;
|
Ecore_Thread *thread_process;
|
||||||
|
Ecore_Thread *thread_cpu;
|
||||||
|
|
||||||
Ecore_Timer *timer_pid;
|
Ecore_Timer *timer_pid;
|
||||||
pid_t selected_pid;
|
pid_t selected_pid;
|
||||||
|
|
|
@ -8,6 +8,7 @@ typedef struct {
|
||||||
Evas_Object *line;
|
Evas_Object *line;
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
Evas_Object *btn;
|
Evas_Object *btn;
|
||||||
|
Ui *ui;
|
||||||
Eina_Bool enabled;
|
Eina_Bool enabled;
|
||||||
int pos;
|
int pos;
|
||||||
int cpu_id;
|
int cpu_id;
|
||||||
|
@ -45,6 +46,8 @@ animator(void *data EINA_UNUSED)
|
||||||
Evas_Coord x, y, w, h;
|
Evas_Coord x, y, w, h;
|
||||||
Animation *anim = data;
|
Animation *anim = data;
|
||||||
|
|
||||||
|
if (!anim->ui->cpu_visible) return EINA_TRUE;
|
||||||
|
|
||||||
bg = anim->bg; line = anim->line; obj = anim->obj;
|
bg = anim->bg; line = anim->line; obj = anim->obj;
|
||||||
|
|
||||||
evas_object_geometry_get(bg, &x, &y, &w, &h);
|
evas_object_geometry_get(bg, &x, &y, &w, &h);
|
||||||
|
@ -110,6 +113,45 @@ _btn_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||||
evas_object_color_set(rect, 47, 153, 255, 255);
|
evas_object_color_set(rect, 47, 153, 255, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_core_times_cb(void *data, Ecore_Thread *thread)
|
||||||
|
{
|
||||||
|
Progress *progress;
|
||||||
|
cpu_core_t **cores;
|
||||||
|
Eina_List *l;
|
||||||
|
Ui *ui;
|
||||||
|
int ncpu, i;
|
||||||
|
|
||||||
|
ui = data;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
if (ecore_thread_check(thread))
|
||||||
|
break;
|
||||||
|
if (!ui->cpu_visible)
|
||||||
|
{
|
||||||
|
usleep(1000000);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
i = 0;
|
||||||
|
cores = system_cpu_usage_get(&ncpu);
|
||||||
|
EINA_LIST_FOREACH(ui->cpu_list, l, progress)
|
||||||
|
{
|
||||||
|
if (!cores || !cores[i])
|
||||||
|
{
|
||||||
|
++i;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
*progress->value = cores[i]->percent;
|
||||||
|
ecore_thread_main_loop_begin();
|
||||||
|
elm_progressbar_value_set(progress->pb, cores[i++]->percent / 100);
|
||||||
|
ecore_thread_main_loop_end();
|
||||||
|
}
|
||||||
|
for (i = 0; i < ncpu; i++)
|
||||||
|
free(cores[i]);
|
||||||
|
free(cores);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ui_tab_cpu_add(Ui *ui)
|
ui_tab_cpu_add(Ui *ui)
|
||||||
{
|
{
|
||||||
|
@ -215,6 +257,8 @@ ui_tab_cpu_add(Ui *ui)
|
||||||
anim->enabled = EINA_TRUE;
|
anim->enabled = EINA_TRUE;
|
||||||
anim->btn = btn;
|
anim->btn = btn;
|
||||||
anim->cpu_id = i;
|
anim->cpu_id = i;
|
||||||
|
anim->ui = ui;
|
||||||
|
|
||||||
progress->value = &anim->value;
|
progress->value = &anim->value;
|
||||||
evas_object_smart_callback_add(btn, "clicked", _btn_clicked_cb, anim);
|
evas_object_smart_callback_add(btn, "clicked", _btn_clicked_cb, anim);
|
||||||
ecore_animator_add(animator, anim);
|
ecore_animator_add(animator, anim);
|
||||||
|
@ -229,24 +273,8 @@ ui_tab_cpu_add(Ui *ui)
|
||||||
ui->cpu_list = eina_list_append(ui->cpu_list, progress);
|
ui->cpu_list = eina_list_append(ui->cpu_list, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui->thread_cpu = ecore_thread_run(_core_times_cb, NULL, NULL, ui);
|
||||||
|
|
||||||
elm_box_pack_end(hbox, box);
|
elm_box_pack_end(hbox, box);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ui_tab_cpu_update(Ui *ui, Sys_Info *info)
|
|
||||||
{
|
|
||||||
Eina_List *l;
|
|
||||||
Progress *progress;
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
if (!ui->cpu_visible)
|
|
||||||
return;
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(ui->cpu_list, l, progress)
|
|
||||||
{
|
|
||||||
*progress->value = info->cores[i]->percent;
|
|
||||||
elm_progressbar_value_set(progress->pb, info->cores[i]->percent / 100);
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,4 @@
|
||||||
void
|
void
|
||||||
ui_tab_cpu_add(Ui *ui);
|
ui_tab_cpu_add(Ui *ui);
|
||||||
|
|
||||||
void
|
|
||||||
ui_tab_cpu_update(Ui *ui, Sys_Info *info);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue