On 06/04/2013 09:20 PM, Bernhard Voelker wrote:
> On 05/22/2013 12:18 AM, Bernhard Voelker wrote:
>> A new patch follows below.  I also added a note about the maximum
>> delay as Padraig suggested.
> 
> I changed nap()'s limit for nanosleep from 2000000000 to the correct
> number (2^31-1), and added a Changelog entry, as well as rebasing against
> latest Git.
> 
> Have a nice day,
> Berny
> 
>>From 6572ae5fcba1b39b495888fd512b20f54c0d1545 Mon Sep 17 00:00:00 2001
> From: Bernhard Voelker <m...@bernhard-voelker.de>
> Date: Tue, 4 Jun 2013 22:18:31 +0200
> Subject: [PATCH] tests/nap.h: avoid race

That's a bit terse. I'd instead say:
tests/nap.h: use an adaptive delay to avoid ctime update issues

It might be worth referencing some of the threads describing
the possible kernel issues, like:
https://lists.gnu.org/archive/html/bug-gnulib/2011-11/msg00226.html

> +static void
> +clear_temp_file (void)
>  {

> +  ASSERT (0 <= nap_fd);
> +  ASSERT (close (nap_fd) != -1);
> +  ASSERT (unlink (TEMPFILE) != -1);
>  }

It might be better to:

if (0 <= nap_fd)
  {
    ASSERT (close (nap_fd) != -1);
    ASSERT (unlink (TEMPFILE) != -1);
  }

which would allow you to setup the atexit handler
before the file is created, thus closing any
small race between creating the file and
enabling the cleanup function.

> +  for ( ; delay <= 2147483647; delay = delay * 2)
> +    if (nap_works (nap_fd, delay, old_st))
> +      return;

nice one.

thanks,
Pádraig.

Reply via email to