All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Sixt <j6t@kdbg.org>
To: Git Mailing List <git@vger.kernel.org>
Cc: Michael Haggerty <mhagger@alum.mit.edu>
Subject: [PATCH mh/lockfile-retry] lockfile: replace random() by rand()
Date: Sat, 30 May 2015 08:23:44 +0200	[thread overview]
Message-ID: <55695770.2040303@kdbg.org> (raw)

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

             reply	other threads:[~2015-05-30  6:24 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-30  6:23 Johannes Sixt [this message]
2015-05-30 17:12 ` [PATCH mh/lockfile-retry] lockfile: replace random() by rand() 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55695770.2040303@kdbg.org \
    --to=j6t@kdbg.org \
    --cc=git@vger.kernel.org \
    --cc=mhagger@alum.mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.