diff --git a/src/xfce-taskmanager-linux.c b/src/xfce-taskmanager-linux.c index 18cb520..9a21c3c 100644 --- a/src/xfce-taskmanager-linux.c +++ b/src/xfce-taskmanager-linux.c @@ -31,12 +31,20 @@ struct task get_task_details(gint pid) struct stat status; gchar filename[255]; gchar cmdline_filename[255]; + static int pagesize = 0; sprintf(filename, "/proc/%i/stat", pid); sprintf(cmdline_filename, "/proc/%i/cmdline", pid); stat(filename, &status); - + + if (pagesize == 0) + { + pagesize = sysconf(_SC_PAGESIZE); + if (pagesize == 0) + pagesize = 4*1024; + } + task.pid = -1; task.checked = FALSE; @@ -101,6 +109,7 @@ struct task get_task_details(gint pid) task.time = stime + utime; task.old_time = task.time; task.time_percentage = 0; + task.rss *= pagesize; task.size = task.size / 1024; } task.uid = status.st_uid;