diff options
author | Christopher Faylor <me@cgf.cx> | 2000-11-05 06:42:23 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-11-05 06:42:23 +0000 |
commit | 0c9ae85d56f9bda2c53cbe3d9fad6aa9a042ad54 (patch) | |
tree | e36c194434cb5dcb138a52287393e33ec8ddd67a /winsup/cygwin/pinfo.h | |
parent | 7edb836a68620f50399b6d086ecba7c19d08b10f (diff) | |
download | cygnal-0c9ae85d56f9bda2c53cbe3d9fad6aa9a042ad54.tar.gz cygnal-0c9ae85d56f9bda2c53cbe3d9fad6aa9a042ad54.tar.bz2 cygnal-0c9ae85d56f9bda2c53cbe3d9fad6aa9a042ad54.zip |
* pinfo.cc (winpids:add): New method.
(winpids::enumNT): New method renamed from EnumProcessesNT. Use add method to
add elements to the lists.
(winpids::enum9x): New method renamed from EnumProcesses9x. Use add method to
add elements to the lists.
(winpids::enum_init): Accept 'winpid' parameter to control whether to add all
windows pids to the list.
(winpids::release): New method.
* pinfo.h (winpids): Reflect above changes.
* signal.cc (kill_pgrp): Ditto.
* external.cc (fillout_pinfo): Ditto.
Diffstat (limited to 'winsup/cygwin/pinfo.h')
-rw-r--r-- | winsup/cygwin/pinfo.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/winsup/cygwin/pinfo.h b/winsup/cygwin/pinfo.h index 0620047ab..b078c9bb1 100644 --- a/winsup/cygwin/pinfo.h +++ b/winsup/cygwin/pinfo.h @@ -188,13 +188,23 @@ class winpids { DWORD *pidlist; DWORD npidlist; + pinfo *pinfolist; + DWORD (winpids::* enum_processes) (bool winpid); + DWORD enum_init (bool winpid); + DWORD enumNT (bool winpid); + DWORD enum9x (bool winpid); + void add (DWORD& nelem, bool, DWORD pid); public: DWORD npids; - void reset () { npids = 0; } - winpids (int) { reset (); } - winpids (): pidlist (NULL), npidlist (0) { init (); }; - void init (); - int operator [] (int i) const {return pidlist[i];} + inline void reset () { npids = 0; release (); } + void init (bool winpid); + winpids (int): enum_processes (&winpids::enum_init) { reset (); } + winpids (): pidlist (NULL), npidlist (0), pinfolist (NULL), + enum_processes (&winpids::enum_init), npids (0) { init (0); } + inline DWORD& winpid (int i) const {return pidlist[i];} + inline _pinfo *operator [] (int i) const {return (_pinfo *) pinfolist[i];} + ~winpids (); + void release (); }; extern __inline pid_t |