Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-11-05 09:42:23 +0300
committerChristopher Faylor <me@cgf.cx>2000-11-05 09:42:23 +0300
commit0c9ae85d56f9bda2c53cbe3d9fad6aa9a042ad54 (patch)
treee36c194434cb5dcb138a52287393e33ec8ddd67a /winsup/cygwin/pinfo.h
parent7edb836a68620f50399b6d086ecba7c19d08b10f (diff)
* 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.h20
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