Thanks for the reviews, Samuel! Did you forget to push this change? :) On Fri, Feb 16, 2024 at 8:24 PM Samuel Thibault <samuel.thiba...@gnu.org> wrote:
> Applied, thanks! > > Flavio Cruz, le ven. 16 févr. 2024 13:26:29 -0500, a ecrit: > > --- > > hurd/process.defs | 6 ++++++ > > proc/info.c | 8 ++++++++ > > proc/proc.h | 4 +++- > > proc/wait.c | 2 ++ > > 4 files changed, 19 insertions(+), 1 deletion(-) > > > > diff --git a/hurd/process.defs b/hurd/process.defs > > index 9a8b3a1..007aa2b 100644 > > --- a/hurd/process.defs > > +++ b/hurd/process.defs > > @@ -466,3 +466,9 @@ simpleroutine proc_reauthenticate_reassign ( > > that the user has received from auth_user_authenticate call. */ > > simpleroutine proc_reauthenticate_complete ( > > process: process_t); > > + > > +/* Returns the rusage information for the children that were waited > > + * for plus all their descendants. */ > > +routine proc_getchildren_rusage ( > > + process: process_t; > > + out children_rusage: rusage_t); > > diff --git a/proc/info.c b/proc/info.c > > index 2d85662..e5b0f47 100644 > > --- a/proc/info.c > > +++ b/proc/info.c > > @@ -1093,3 +1093,11 @@ S_proc_get_exe (struct proc *callerp, > > return 0; > > } > > > > +kern_return_t > > +S_proc_getchildren_rusage (struct proc *p, struct rusage *ru) > > +{ > > + if (!p) > > + return EOPNOTSUPP; > > + *ru = p->p_child_rusage; > > + return 0; > > +} > > diff --git a/proc/proc.h b/proc/proc.h > > index a83a509..bbba095 100644 > > --- a/proc/proc.h > > +++ b/proc/proc.h > > @@ -76,7 +76,9 @@ struct proc > > int p_sigcode; > > struct rusage p_rusage; /* my usage if I'm dead, to return via > wait */ > > > > - struct rusage p_child_rusage; /* accumulates p_rusage of all > dead children */ > > + /* Accumulates p_rusage of all dead children, including > > + * grandchildren and their descendants. */ > > + struct rusage p_child_rusage; > > > > unsigned int p_exec:1; /* has called proc_mark_exec */ > > unsigned int p_stopped:1; /* has called proc_mark_stop */ > > diff --git a/proc/wait.c b/proc/wait.c > > index 4551d28..a31b0e7 100644 > > --- a/proc/wait.c > > +++ b/proc/wait.c > > @@ -156,6 +156,8 @@ alert_parent (struct proc *p) > > { > > /* We accumulate the aggregate usage stats of all our dead children. > */ > > rusage_add (&p->p_parent->p_child_rusage, &p->p_rusage); > > + /* ... and descendants. */ > > + rusage_add (&p->p_parent->p_child_rusage, &p->p_child_rusage); > > > > send_signal (p->p_parent->p_msgport, SIGCHLD, CLD_EXITED, > p->p_parent->p_task); > > > > -- > > 2.39.2 > > > > > > -- > Samuel > --- > Pour une évaluation indépendante, transparente et rigoureuse ! > Je soutiens la Commission d'Évaluation de l'Inria. >