Re: [PATCH 5/6] On Solaris nanosleep() is not in libc but in librt

From: Junio C Hamano <junkio@cox.net>
Date: 2006-08-15 20:35:01
Dennis Stosberg <dennis@stosberg.net> 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Tue Aug 15 20:36:26 2006

This archive was generated by hypermail 2.1.8 : 2006-08-15 20:37:01 EST