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.
>

Reply via email to