git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH mh/lockfile-retry] lockfile: replace random() by rand()
@ 2015-05-30  6:23 Johannes Sixt
  2015-05-30 17:12 ` Junio C Hamano
  0 siblings, 1 reply; 12+ messages in thread
From: Johannes Sixt @ 2015-05-30  6:23 UTC (permalink / raw)
  To: Git Mailing List; +Cc: Michael Haggerty

On Windows, we do not have functions srandom() and random(). Use srand()
and rand(). These functions produce random numbers of lesser quality,
but for the purpose (a retry time-out) they are still good enough.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
There you have it: Look the other way for a while, and people start
using exotic stuff... ;)

This is a build breakage of master on Windows. There are also a few
new test suite failures. On of them is in t1404#2, indicating that
a DF conflict takes a different error path. I haven't debugged, yet.
The lock file retry test fails, too. I'll report back as time permits.

 lockfile.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lockfile.c b/lockfile.c
index 5a93bc7..ee5cb01 100644
--- a/lockfile.c
+++ b/lockfile.c
@@ -191,7 +191,7 @@ static int lock_file_timeout(struct lock_file *lk, const char *path,
 		return lock_file(lk, path, flags);
 
 	if (!random_initialized) {
-		srandom((unsigned int)getpid());
+		srand((unsigned int)getpid());
 		random_initialized = 1;
 	}
 
@@ -218,7 +218,7 @@ static int lock_file_timeout(struct lock_file *lk, const char *path,
 
 		backoff_ms = multiplier * INITIAL_BACKOFF_MS;
 		/* back off for between 0.75*backoff_ms and 1.25*backoff_ms */
-		wait_us = (750 + random() % 500) * backoff_ms;
+		wait_us = (750 + rand() % 500) * backoff_ms;
 		sleep_microseconds(wait_us);
 		remaining_us -= wait_us;
 
-- 
2.3.2.245.gb5bf9d3

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2015-06-05 20:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-30  6:23 [PATCH mh/lockfile-retry] lockfile: replace random() by rand() Johannes Sixt
2015-05-30 17:12 ` Junio C Hamano
2015-06-04  8:40   ` Johannes Sixt
2015-06-04 11:42     ` Michael Haggerty
2015-06-04 15:57       ` Junio C Hamano
2015-06-05 19:45     ` [PATCH 0/4] Fix file locking with retry and timeout on Windows Johannes Sixt
2015-06-05 19:45       ` [PATCH 1/4] lockfile: replace random() by rand() Johannes Sixt
2015-06-05 19:45       ` [PATCH 2/4] help.c: wrap wait-only poll() invocation in sleep_millisec() Johannes Sixt
2015-06-05 19:45       ` [PATCH 3/4] lockfile: convert retry timeout computations to millisecond Johannes Sixt
2015-06-05 19:45       ` [PATCH 4/4] lockfile: wait using sleep_millisec() instead of select() Johannes Sixt
2015-06-05 19:57       ` [PATCH 0/4] Fix file locking with retry and timeout on Windows Junio C Hamano
2015-06-05 20:14       ` Michael Haggerty

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).