Dennis Stosberg <dennis@xxxxxxxxxxxx> writes: > -# Define NEEDS_SOCKET if linking with libc is not enough (SunOS, > -# Patrick Mauritz). > +# Define NEEDS_SOCKET if linking with libc is not enough for socket() > +# (SunOS, Patrick Mauritz). > +# > +# Define NEEDS_RT if linking with libc is not enough for nanosleep() (SunOS) Ah, nanosleep(2) was my fault, and we should be able to just use straight sleep(3) there. The purpose of the loop is to wait until the next filesystem timestamp granularity, and the code uses subsecond sleep in the hope that it can shorten the delay to 0.5 seconds on average instead of a full second. How exotic is -lrt on SunOS? I suspect it is not worth depending on it only for that single use in read-cache.c We might want to yank out the whole "racy-git avoidance is costly later so let's delay writing the index out" codepath later, but that is a separate issue and needs some testing on large trees to figure it out. After playing with the kernel tree, I have a feeling that the whole thing may not be worth it. In any case, an obvious tentative patch is here. diff --git a/read-cache.c b/read-cache.c index b18f9f7..ec4dd5a 100644 --- a/read-cache.c +++ b/read-cache.c @@ -5,7 +5,6 @@ */ #include "cache.h" #include "cache-tree.h" -#include <time.h> /* Index extensions. * @@ -1033,11 +1032,8 @@ #if 0 fprintf(stderr, "now %lu\n", now); #endif while (!fstat(newfd, &st) && st.st_mtime <= now) { - struct timespec rq, rm; off_t where = lseek(newfd, 0, SEEK_CUR); - rq.tv_sec = 0; - rq.tv_nsec = 250000000; - nanosleep(&rq, &rm); + sleep(1); if ((where == (off_t) -1) || (write(newfd, "", 1) != 1) || (lseek(newfd, -1, SEEK_CUR) != where) || - 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