Commit Graph

442 Commits

Author SHA1 Message Date
Landry Breuil
ee9bd057fd Merge branch 'master' of ssh://git.xfce.org/git/apps/xfce4-taskmanager
Conflicts:
	src/task-manager-bsd.c
2010-05-16 12:56:06 +02:00
Landry Breuil
00d6107972 Implement pid_is_sleeping() and fix send_signal_to_pid() 2010-05-16 12:53:50 +02:00
Mike Massonnet
0be1d45507 Don't recount CPU count in Linux implementation 2010-05-16 12:30:37 +02:00
Mike Massonnet
b961822ba4 Move POSIX code to task-manager.c
The functions send_signal_to_pid() and set_priority_to_pid() are using
POSIX functions and “should” be safe in task-manager.c. Still keep the
enumeration as a bridge between virtual values and real values, there is
no benefit removing them (wasting minutes) and it won't make the code
look better (or worse).

The functions have been removed from the Linux and BSD implementations.
2010-05-16 12:30:37 +02:00
Landry Breuil
a721cda4be Set Task name from p_comm field, and cmdline from KERN_PROC_ARGV 2010-05-13 20:07:35 +02:00
Landry Breuil
44dc437214 correctly implement set_priority/send_signal_to_pid() 2010-05-13 19:57:37 +02:00
Landry Breuil
10247249eb Implement fetching of swap stats 2010-05-13 19:56:51 +02:00
Landry Breuil
e5ad1842bf Fix missing includes, remove unused variables 2010-05-13 19:56:10 +02:00
Landry Breuil
3acd330400 WIP on OpenBSD support
- update wrt new Task structure
- handle zombie processes
- get full cmdline
rework
2010-05-13 18:36:17 +02:00
Mike Massonnet
137748a486 === Release 0.5.90 (1.0.0 beta1) === 2010-05-11 00:25:07 +02:00
Mike Massonnet
8dd82ed6a8 Prepare build-env for first beta 2010-05-10 22:22:51 +02:00
Mike Massonnet
a21b1bfca8 Ask for confirmation to terminate/kill a task 2010-05-10 22:22:39 +02:00
Mike Massonnet
7239d4bbb0 Display memory values < 1 MiB
Fixed the MB “typo” and show values for memory in KiB or B if needed.
The threshold for displaying KiB (< 4 MiB) or B (< 9 KiB) are based on
impulse.
2010-05-10 17:57:51 +02:00
Mike Massonnet
9a6cdd2ff3 Filter tree view with show-all-processes
Switched the get_hostname() get_owner_uid() public in task-manager.c,
the owner uid is needed in the tree view class in order to filter out
user processes from others.
2010-05-10 17:03:27 +02:00
Mike Massonnet
99a4a68097 Renamed Show "system" processes to "all" and added a GtkTreeModelFilter
<sigh>
  I started to rename "Show sytem processes" to "Show all processes"
  and included a GtkTreeModelFilter in between the GtkListStore and
  GtkTreeView but nooooo... I had to write private code to sort the
  columns. In fact the GtkTreeViewColumn class assumes the model to
  be sortable but GtkTreeModelFilter is not, although it provides an
  accessor function to the underlying model which is.

  And not to mention that understanding GtkTreeViewColumn is a task
  on its own! Having the code under the hand is the only exit.
</sigh>
2010-05-10 11:29:34 +02:00
Mike Massonnet
1788e3c220 Implement new function pid_is_sleeping()
The function pid_is_sleeping() is implement by the different OS
implementations and returns TRUE or FALSE. It is used in the tree view
context menu to show either the signal Stop or Continue.
2010-05-09 01:34:56 +02:00
Mike Massonnet
07131a81b3 Context menu for sending signals and setting priorities
Base signals and priorities are defined inside the task-manager.h file
to be reused as general values inside the interface. The different OS
implementations have to do the conversion from the enumeration to real
values.
2010-05-09 00:51:46 +02:00
Mike Massonnet
e524915ac7 Several micro fixes on the Linux implementation
Fix one segfault where some processes like “ls” live very briefly and
those may be catched up but at the time to read the cmdline the process
tree already disappeared. Also terminate the cmdline with \0.

I ran the application on my netbook, which doesn't have /proc/<PID>/comm
files... The code has been updated to read the short command from the
buffer.
2010-05-08 14:49:12 +02:00
Mike Massonnet
a7465b61f4 Fix for scanf failing at parsing process names with spaces
The code still uses scanf to parse the stat file, but the process name
is being cleansed so that it never fails. The name is read from the
“comm” file. It is still a truncated version of the name, and will
likely remain for very long like this. There is one solution, but since
the name isn't currently used inside the interface there is no point
wasting time.
2010-05-08 00:10:22 +02:00
Mike Massonnet
553be8eee1 Temporary “fix” of a nasty segfault
On the Linux implementation, when a process name has a space in it the
sscanf function is unable to parse the line properly. This will have to
be changed, but in the meantime ignore such processes and avoid the
segfault, there are going to be Beta releases.
2010-05-07 21:52:46 +02:00
Mike Massonnet
239c5d5064 Enhance performance by updating the GtkTreeModel inside the TaskManager
The code to update the model has been moved inside the XtmTaskManager
class and this in order to enhance performance. In fact all the rows of
the model were udpdated everytime (150~ processes × 9 columns calls on
gtk_list_store_set per seconds) which represented a big CPU hog. Now
that the model is being updated within the same class that pulls the
processes information it is possible to run low check routines and
update only the rows that have updated information.

Also big surprise, the new tasks weren't added, well they did but not
the right data. The pointer's location was copied instead of the
pointer's content.
2010-05-07 21:52:33 +02:00
Mike Massonnet
2506eb50d8 Typo, that's why I hate commit and pushing right behind 2010-05-05 18:02:35 +02:00
Mike Massonnet
3cd86dca3d Well s/jiffles/jiffies/
I was quite sure I had a typo but didn't concider it.
2010-05-05 16:39:51 +02:00
Mike Massonnet
074f5039e1 Calculate CPU usage per process in Linux implementation
Added a utility function that stores old jiffles inside a hash table in
order to be able to provide usage values of system and user time in
percentage.
2010-05-05 16:30:37 +02:00
Mike Massonnet
a02bf69573 Show list of tasks
Provide the list of tasks through a GArray and parse it in main.c to
update the GtkTreeModel.
2010-05-05 09:02:04 +02:00
Mike Massonnet
71d1684696 Add precision to memory/swap and CPU
Switched all the gushort against gfloat data types for the memory, swap
and CPU usages. Show them with a precision of two decimals in the GUI.
2010-05-02 17:03:58 +02:00
Mike Massonnet
4f04ca5cb7 Read information from memory/swap and CPU
This commit is the second of an incremental serie. There will be other
commits with the information about tasks and the support for BSD and
Solaris once things are settled.

The TaskManager class is build with a new source task-manager-linux.c
that provides functions specific to the Linux implementation. It has
functions to read the usage of the memory/swap and the CPU.
2010-05-02 17:00:30 +02:00
Mike Massonnet
9a49bf015a Initial TaskManager class and make room for Swap
Added the TaskManager class to hold system information and tasks.
Currently it provides username and hostname based on POSIX functions.
The Swap is now part of the system information and is being displayed in
the statusbar.
2010-05-02 17:00:30 +02:00
Mike Massonnet
fdaf8b1b49 Rename “Information” to “Preferences” 2010-05-02 17:00:30 +02:00
Mike Massonnet
b83eb75002 Custom statusbar
The statusbar is created since a separate widget class and has three
different labels (settable through properties) for CPU, memory and
number of processes. This makes it more convenient to change one or
another value and it gives a nicer look.
2010-05-02 17:00:24 +02:00
Mike Massonnet
cc6dbd8373 Initial commit of new interface
Changes touching the build:
- Bumped version to 0.5.0.
- Removed dependency on Xfce libs (it only depends on GTK+-2.0.)
- Updated Makefile with new source files.
- Build ChangeLog through a script (remove it from source tree.)

More generally speaking, the interface is build on top of a GtkBuilder
UI definition, with a personal GtkTreeView and a Settings GObject to
update the information shown on the interface on changes. All the code
is being written with GObjects which will make it a lot easier to
separate GUI code and system code.
2010-05-01 15:34:25 +02:00
Mike Massonnet
2ea3ddc135 Small factorize on cmdline reading 2009-09-11 15:33:00 +02:00
Mike Massonnet
e545b2e716 Show command line arguments in Linux 2009-09-09 20:24:24 +02:00
Mike Massonnet
e05fff219f Update Solaris patch from Peter Tribble
Check for the lib kstat in the autoconf script.
Build with the correct file for Solaris in the automake script.
Fixed the xfce_err messages and switched to g_snprintf for the command strings.
Updated the TODO file.
2009-09-08 16:39:30 +02:00
Mike Massonnet
9e43755ce3 Add support for Solaris from Peter Tribble 2009-09-03 19:39:33 +02:00
Mike Massonnet
d19395a28e prepare 0.4.1 release
(Old svn revision: 5416)
2008-09-15 21:17:14 +00:00
Mike Massonnet
2e736532c4 Fix int compare function; Drop useless cast which makes the CPU usage per process worky again
(Old svn revision: 5192)
2008-08-03 20:54:03 +00:00
Mike Massonnet
f3c2ad4706 New function to get the full and short cmdline (Linux)
(Old svn revision: 5191)
2008-08-03 20:02:28 +00:00
Mike Massonnet
f61e15b987 Quick clean up, update TODO, and display memory less than 1 MB
(Old svn revision: 5187)
2008-08-02 17:41:57 +00:00
Mike Massonnet
65f92216cd Apply patch for BSD support from Landry Breuil
(Old svn revision: 5178)
2008-07-30 22:42:44 +00:00
Mike Massonnet
66b5229db7 Use portable function to get the pagesize; Use a bigger "Information" icon in the menu
* src/xfce-taskmanager-linux.c,
  src/xfce-taskmanager-linux.h,
  src/interface.c(fill_list_item):
  - Use portale function to get the pagesize, and fallback to 4K
* src/interface.c(create_infomenu):
  - Use a bigger "Information" icon in the menu


(Old svn revision: 4824)
2008-05-18 17:37:39 +00:00
Mike Massonnet
1a2783b6a0 New information menu to select the columns to display; minor clean up
(Old svn revision: 4806)
2008-05-16 07:05:20 +00:00
Mike Massonnet
d68dcf5f6f Minor changes: don't focus button on click, right align priority column
(Old svn revision: 4805)
2008-05-16 07:05:14 +00:00
Mike Massonnet
80637439f9 Set window icon to "xfce-system" and modify the about dialog
(Old svn revision: 4777)
2008-05-10 23:33:16 +00:00
Mike Massonnet
3436eee4bb Redo what is displayed in More info (PPID, STATE, VM-size), and keep RSS in normal info
(Old svn revision: 4776)
2008-05-10 23:30:40 +00:00
Mike Massonnet
378690965f Set buffer_status to 1024 (fixes issues with 64bit archs); use convenience macro GINT_TO_POINTER to pass to user_data
(Old svn revision: 4763)
2008-05-09 23:14:02 +00:00
Mike Massonnet
bbd98acecb Properly refresh the CPU usage of a process
(Old svn revision: 4759)
2008-05-09 14:01:12 +00:00
Mike Massonnet
bb1c4ec520 Update strings and make update-po
(Old svn revision: 4758)
2008-05-09 12:32:41 +00:00
Mike Massonnet
526fd83c60 Properly display the memory usage and fix signal connected on the show_cached_as_free menu item
(Old svn revision: 4756)
2008-05-09 12:22:59 +00:00
Mike Massonnet
8f6ca38ea2 Save sort column/type in config
(Old svn revision: 4755)
2008-05-09 12:22:54 +00:00