|
From: | David Boyce |
Subject: | Re: Unlink failure on abort |
Date: | Sun, 18 Jun 2017 04:42:43 -0700 |
On Sun, Jun 18, 2017 at 5:31 AM, Eli Zaretskii <address@hidden> wrote:> From: Orgad Shaneh <address@hidden>
> Date: Sat, 17 Jun 2017 23:04:11 +0300
> Cc: address@hidden, Alexey Pavlov <address@hidden>
>
> +#ifdef WINDOWS32
> + for (e = 0; e < 10; ++e)
> + {
> +#endif
> + status = unlink (file->name);
> +#ifdef WINDOWS32
> + if (status == 0 || errno == ENOENT)
> + break;
> + Sleep(50);
> + }
> +#endif
Please try the same, but with Sleep calls using 10 or even 5 msec (and
enlarging the loop count if necessary). I'd be interested to see the
statistics of the count after which the unlink call succeeds in your
cases.
Thanks.
On my machine it also doesn't reproduce every time, but I can reproduce it.I used Sleep(5), and had count of 2 (I had the same with Sleep(50)).I think the problem is that reap_children() is called after delete_child_targets, so the child jobs can still run while make is trying to delete.Maybe delete_targets should become part of reap_children (it cannot be called after reap, because at this point you don't have the target info anymore).What do you say?- Orgad
_______________________________________________
Bug-make mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/bug-make
[Prev in Thread] | Current Thread | [Next in Thread] |