1void
2xnanosleep (_Bool overflow)
3{
4  struct { int tv_nsec; } ts_sleep;
5  if (0 <= ts_sleep.tv_nsec)
6    overflow |= 1;
7
8  for (;;)
9    {
10      if (overflow)
11        ts_sleep.tv_nsec = 0;
12      if (foo (ts_sleep))
13        break;
14    }
15}
16