--- a/patches/gnome-system-monitor-01-solaris.diff Tue Jul 14 16:07:50 2009 +0000
+++ b/patches/gnome-system-monitor-01-solaris.diff Wed Jul 15 08:18:03 2009 +0000
@@ -270,9 +270,9 @@
kit.run();
procman_free_data (procdata);
-diff -Nrup gnome-system-monitor-2.25.91/src/proctable.cpp gnome-system-monitor-2.25.91.mod/src/proctable.cpp
---- gnome-system-monitor-2.25.91/src/proctable.cpp 2008-09-14 05:25:03.000000000 +0800
-+++ gnome-system-monitor-2.25.91.mod/src/proctable.cpp 2009-03-04 12:05:57.166912000 +0800
+diff -Nrup gnome-system-monitor-2.26.2/src/proctable.cpp gnome-system-monitor-2.26.2/src/proctable.cpp
+--- gnome-system-monitor-2.26.2/src/proctable.cpp 2009-07-15 15:18:15.325964805 +0800
++++ gnome-system-monitor-2.26.2/src/proctable.cpp 2009-07-15 15:40:34.315280700 +0800
@@ -197,7 +197,7 @@ search_equal_func(GtkTreeModel *model,
@@ -311,29 +311,16 @@
#endif
}
-@@ -517,13 +532,20 @@ get_process_memory_info(ProcInfo *info)
- info->pid,
- &xresources);
+@@ -570,7 +585,7 @@ insert_info_to_tree (ProcInfo *info, Pro
+
+ ProcInfo *parent = 0;
-- glibtop_get_proc_mem(&procmem, info->pid);
-+ info->memxserver = xresources.total_bytes_estimate;
-+
-+/* zhua: use get_process_memory_writable(), because it just call glibtop_get_proc_map_s(),
-+ can get shared memory and writable memory, others: vmsize & memres, will be
-+ get in procstate from glibtop_get_proc_state()*/
-+/* glibtop_get_proc_mem(&procmem, info->pid);
-+
+- if (not forced)
++ if (not forced && info->pid != 0)
+ parent = ProcInfo::find(info->ppid);
- info->vmsize = procmem.vsize;
- info->memres = procmem.resident;
- info->memshared = procmem.share;
-
- info->memxserver = xresources.total_bytes_estimate;
-+*/
-
- get_process_memory_writable(info);
-
-@@ -597,7 +619,7 @@ insert_info_to_tree (ProcInfo *info, Pro
+ if (parent) {
+@@ -597,7 +612,7 @@ insert_info_to_tree (ProcInfo *info, Pro
procdata->pretty_table.set_icon(*info);
@@ -342,7 +329,7 @@
}
-@@ -612,12 +634,12 @@ remove_info_from_tree (ProcData *procdat
+@@ -612,12 +627,12 @@ remove_info_from_tree (ProcData *procdat
GtkTreeIter child_node;
if (std::find(orphans.begin(), orphans.end(), current) != orphans.end()) {
@@ -358,63 +345,7 @@
// it is not possible to iterate&erase over a treeview so instead we
// just pop one child after another and recursively remove it and
-@@ -655,15 +677,20 @@ update_info (ProcData *procdata, ProcInf
- glibtop_get_proc_state (&procstate, info->pid);
- info->status = procstate.state;
-
-+ /* zhua: let's delete this call, because we can get the value
-+ from glibtop_get_proc_state
- glibtop_get_proc_uid (&procuid, info->pid);
-+ */
- glibtop_get_proc_time (&proctime, info->pid);
-
-- get_process_memory_info(info);
-+ get_process_memory_info(info);/* get shared/writable/xserver memory */
-
-- info->set_user(procstate.uid);
-+ info->set_user(procstate.uid);/* get user of process */
-
-+ /* zhua: let's get from file directly
- info->pcpu = (proctime.rtime - info->cpu_time) * 100 / procdata->cpu_total_time;
- info->pcpu = MIN(info->pcpu, 100);
-+ */
-
- if (procdata->config.solaris_mode)
- info->pcpu /= procdata->config.num_cpus;
-@@ -671,6 +698,17 @@ update_info (ProcData *procdata, ProcInf
- ProcInfo::cpu_times[info->pid] = info->cpu_time = proctime.rtime;
- info->nice = procuid.nice;
- info->ppid = procuid.ppid;
-+
-+ /* zhua: get nice/ppid from procstate */
-+ // info->nice = procstate.nice;
-+
-+ /* zhua: get start_time from procstate */
-+ info->start_time = procstate.start_time;
-+
-+ info->vmsize = procstate.vsize;
-+ info->memres = procstate.resident;
-+
-+ // info->pcpu = procstate.load;
- }
-
-
-@@ -712,7 +750,13 @@ ProcInfo::ProcInfo(pid_t pid)
- cpu_time = it->second;
- }
- info->cpu_time = cpu_time;
-- info->start_time = proctime.start_time;
-+ /* zhua: get start_time/nice/ppid from procstate */
-+ info->start_time = procstate.start_time;
-+ info->nice = procstate.nice;
-+ /* zhua */
-+ info->vmsize = procstate.vsize;
-+ info->memres = procstate.resident;
-+ info->pcpu = procstate.load;
-
- get_process_selinux_context (info);
- }
-@@ -757,7 +801,7 @@ refresh_list (ProcData *procdata, const
+@@ -757,7 +772,7 @@ refresh_list (ProcData *procdata, const
++next;
if (pids.find(info->pid) == pids.end()) {
@@ -423,7 +354,7 @@
remove_info_from_tree(procdata, model, info, addition);
addition.remove(info);
ProcInfo::all.erase(it);
-@@ -785,12 +829,12 @@ refresh_list (ProcData *procdata, const
+@@ -785,12 +800,12 @@ refresh_list (ProcData *procdata, const
while (not addition.empty()) {
@@ -439,19 +370,7 @@
// inserts the process in the treeview if :
-@@ -880,9 +924,11 @@ proctable_update_list (ProcData * const
-
- /* FIXME: total cpu time elapsed should be calculated on an individual basis here
- ** should probably have a total_time_last gint in the ProcInfo structure */
-+/* zhua: delete these sentences, we can get cpu% from file directly.
- glibtop_get_cpu (&cpu);
- procdata->cpu_total_time = MAX(cpu.total - procdata->cpu_total_time_last, 1);
- procdata->cpu_total_time_last = cpu.total;
-+*/
-
- refresh_list (procdata, pid_list, proclist.number);
-
-@@ -895,7 +941,7 @@ proctable_update_list (ProcData * const
+@@ -895,7 +910,7 @@ proctable_update_list (ProcData * const
void