[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Cvs-cvs] ccvs ChangeLog NEWS src/ChangeLog src/subr.c
From: |
Derek Robert Price |
Subject: |
[Cvs-cvs] ccvs ChangeLog NEWS src/ChangeLog src/subr.c |
Date: |
Sun, 19 Jul 2009 04:07:31 +0000 |
CVSROOT: /cvsroot/cvs
Module name: ccvs
Changes by: Derek Robert Price <dprice> 09/07/19 04:07:30
Modified files:
. : ChangeLog NEWS
src : ChangeLog subr.c
Log message:
Merge imperfectly synchronized time() & gettimeofday() fixes from
production.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/ccvs/ChangeLog?cvsroot=cvs&r1=1.1375&r2=1.1376
http://cvs.savannah.gnu.org/viewcvs/ccvs/NEWS?cvsroot=cvs&r1=1.383&r2=1.384
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/ChangeLog?cvsroot=cvs&r1=1.3640&r2=1.3641
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/subr.c?cvsroot=cvs&r1=1.176&r2=1.177
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/cvs/ccvs/ChangeLog,v
retrieving revision 1.1375
retrieving revision 1.1376
diff -u -b -r1.1375 -r1.1376
--- ChangeLog 25 Nov 2008 22:56:22 -0000 1.1375
+++ ChangeLog 19 Jul 2009 04:07:29 -0000 1.1376
@@ -1,3 +1,8 @@
+2009-07-18 Derek R. Price <address@hidden>
+
+ * NEWS: Note timestamp fix for systems with imperfectly synchronized
+ time() & gettimeofday() functions.
+
2008-11-25 Larry Jones <address@hidden>
* HACKING, NEWS: Note update to Autoconf 2.63.
Index: NEWS
===================================================================
RCS file: /cvsroot/cvs/ccvs/NEWS,v
retrieving revision 1.383
retrieving revision 1.384
diff -u -b -r1.383 -r1.384
--- NEWS 25 Nov 2008 22:56:22 -0000 1.383
+++ NEWS 19 Jul 2009 04:07:29 -0000 1.384
@@ -50,6 +50,9 @@
BUG FIXES
+* Time stamps are set correctly on systems where time() and gettimeofday()
+ return times with different values for the current second.
+
* Changing keyword substitution mode no longer interferes with conflict
tracking (fixes bug #17565).
Index: src/ChangeLog
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/ChangeLog,v
retrieving revision 1.3640
retrieving revision 1.3641
diff -u -b -r1.3640 -r1.3641
--- src/ChangeLog 2 Dec 2008 19:33:59 -0000 1.3640
+++ src/ChangeLog 19 Jul 2009 04:07:30 -0000 1.3641
@@ -1,3 +1,8 @@
+2009-07-18 Derek R. Price <address@hidden>
+
+ * subr.c (sleep_past): Don't assume that time() called after
+ gettimeofday() must return a seconds value >= than gettimeofday() did.
+
2008-12-02 Larry Jones <address@hidden>
* commit.c: Remove defunct variable (got_message).
Index: src/subr.c
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/subr.c,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -b -r1.176 -r1.177
--- src/subr.c 25 Sep 2008 18:45:17 -0000 1.176
+++ src/subr.c 19 Jul 2009 04:07:30 -0000 1.177
@@ -906,14 +906,14 @@
time_t t;
long s;
long us;
-
+/* printf ("sleep requested until %d, current time it %d\n",
+ desttime, time(&t)); */
while (time (&t) <= desttime)
{
#ifdef HAVE_GETTIMEOFDAY
struct timeval tv;
gettimeofday (&tv, NULL);
- if (tv.tv_sec > desttime)
- break;
+ if (tv.tv_sec <= desttime) {
s = desttime - tv.tv_sec;
if (tv.tv_usec > 0)
us = 1000000 - tv.tv_usec;
@@ -922,11 +922,21 @@
s++;
us = 0;
}
-#else
+ }
+ else
+#endif
+ {
+ /* On at least one Linux 2.6.24 system, time() lags behind
+ * gettimeofday() by up to 10 msec, and file time stamps use
+ * time(). For example, time() might return 1247677670 while
+ * gettimeofday() returns 1247677671.000060, so we always sleep
+ * at least 20ms and retry the test using time(), like we do when
+ * gettimeofday() is not available.
+ */
/* default to 20 ms increments */
- s = desttime - t;
us = 20000;
-#endif
+ s = desttime - t;
+ }
{
struct timespec ts;
@@ -935,6 +945,7 @@
(void)nanosleep (&ts, NULL);
}
}
+ /* printf ("slept until %d\n", time(&t)); */
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Cvs-cvs] ccvs ChangeLog NEWS src/ChangeLog src/subr.c,
Derek Robert Price <=