* pinfo.h (pinfo::remember): Arrange for destructor call if proc_subproc

returns error.
* sigproc.cc (zombies): Store 1 + total zombies since proc_subproc uses
NZOMBIES element.
This commit is contained in:
Christopher Faylor 2002-08-19 14:59:27 +00:00
parent 34f7289475
commit 3bacc423cf
3 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2002-08-19 Christopher Faylor <cgf@redhat.com>
* pinfo.h (pinfo::remember): Arrange for destructor call if
proc_subproc returns error.
* sigproc.cc (zombies): Store 1 + total zombies since proc_subproc uses
NZOMBIES element.
2002-08-19 Corinna Vinschen <corinna@vinschen.de>
* pwdgrp.h (pwdgrp_read::pwdgrp_read): Remove.

View File

@ -131,7 +131,7 @@ class pinfo
{
HANDLE h;
_pinfo *procinfo;
int destroy;
bool destroy;
public:
void init (pid_t n, DWORD create = 0, HANDLE h = NULL) __attribute__ ((regparm(3)));
pinfo () {}
@ -154,10 +154,15 @@ public:
_pinfo *operator * () const {return procinfo;}
operator _pinfo * () const {return procinfo;}
// operator bool () const {return (int) h;}
#ifdef _SIGPROC_H
int remember () {destroy = 0; return proc_subproc (PROC_ADDCHILD, (DWORD) this);}
#else
#ifndef _SIGPROC_H
int remember () {system_printf ("remember is not here"); return 0;}
#else
int remember ()
{
int res = proc_subproc (PROC_ADDCHILD, (DWORD) this);
destroy = res ? false : true;
return res;
}
#endif
HANDLE shared_handle () {return h;}
};

View File

@ -107,7 +107,7 @@ Static HANDLE events[PSIZE + 1]; // All my children's handles++
#define hchildren (events + 1) // Where the children handles begin
Static char cpchildren[PSIZE * sizeof (pinfo)]; // All my children info
Static int nchildren; // Number of active children
Static char czombies[NZOMBIES * sizeof (pinfo)]; // All my deceased children info
Static char czombies[(NZOMBIES + 1) * sizeof (pinfo)]; // All my deceased children info
Static int nzombies; // Number of deceased children
#define pchildren ((pinfo *) cpchildren)