diff --git a/src/xfce-taskmanager-linux.c b/src/xfce-taskmanager-linux.c index 18cb520..6fdb4fd 100644 --- a/src/xfce-taskmanager-linux.c +++ b/src/xfce-taskmanager-linux.c @@ -17,6 +17,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include + #include "xfce-taskmanager-linux.h" struct task get_task_details(gint pid) @@ -31,12 +33,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 +111,7 @@ struct task get_task_details(gint pid) task.time = stime + utime; task.old_time = task.time; task.time_percentage = 0; + task.rss *= pagesize / 1024; task.size = task.size / 1024; } task.uid = status.st_uid;