Re: [PATCH] clear_child_for_cleanup must correctly manage children_to_clean

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 11, 2012 at 4:32 PM, David Gould <david@xxxxxxxxxxxxxxxxxxx> wrote:
> Iterate through children_to_clean using 'next' fields but with an
> extra level of indirection. This allows us to update the chain when
> we remove a child and saves us managing several variables around
> the loop mechanism.
> ---
>  run-command.c |   12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/run-command.c b/run-command.c
> index f9922b9..c42d63b 100644
> --- a/run-command.c
> +++ b/run-command.c
> @@ -53,13 +53,13 @@ static void mark_child_for_cleanup(pid_t pid)
>
>  static void clear_child_for_cleanup(pid_t pid)
>  {
> -       struct child_to_clean **last, *p;
> +       struct child_to_clean **pp;
>
> -       last = &children_to_clean;
> -       for (p = children_to_clean; p; p = p->next) {
> -               if (p->pid == pid) {
> -                       *last = p->next;
> -                       free(p);
> +       for (pp = &children_to_clean; *pp; pp = &(*pp)->next) {
> +               if ((*pp)->pid == pid) {
> +                       struct child_to_clean *clean_me = *pp;
> +                       *pp = clean_me->next;
> +                       free(clean_me);
>                         return;
>                 }
>         }
> --
> 1.7.9.5
>

Looks good to me. Thanks :)
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]