git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH mh/lockfile-retry] lockfile: replace random() by rand()

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 4, 2015, 15:57 UTC
Message-ID
<CAPc5daXsvYppq0=2EU=Ah=MMWtva4_Q8325h7g1phGiDx0RAgg@mail.gmail.com>
In-Reply-To
<557039AE.3020107@alum.mit.edu>
On Thu, Jun 4, 2015 at 4:42 AM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
Show 5 quoted lines
> On 06/04/2015 10:40 AM, Johannes Sixt wrote:
> We *certainly* don't require high-quality random numbers for this
> application. Regarding portability, there is one definite point in favor
> of rand() (it's available on Windows) vs. Junio's recollection that
> random() might have portability advantages, presumably on other platforms.

I agree that anything is OK in this codepath. I just suspected that whichever one we pick, there would be somebody who says "oh, my system lacks it", and we will end up adding one of compat/{rand,random}.c to emulate.

And when I anticipated that future, my inclination was to prefer random(), not rand(), used in the code, not the other way around. Yes, both are in POSIX, but I was getting the impression that rand() is on its way out (and rand_r() is already marked as obsolete).

> Maybe the easiest thing would be to switch to using rand() and see if
> the OS/2 and VMS users complain ;-)

We can certainly go that route and I am fine with that as the solution for today, as long as somebody will remember this discussion when that complaint comes, and make compat/random.c, and switch the in-code use to random(), instead of sticking to use of rand() in code.

Previous: Michael HaggertyNext: Johannes Sixt
Message 5 of 12 in “lockfile: replace random() by rand()”
  1. lockfile: replace random() by rand()Johannes Sixt, May 30, 2015
  2. Junio C HamanoMay 30, 2015
  3. Johannes SixtJun 4, 2015
  4. Michael HaggertyJun 4, 2015
  5. Junio C HamanoJun 4, 2015
  6. 0/4 Fix file locking with retry and timeout on WindowsJohannes Sixt, Jun 5, 2015
  7. Junio C HamanoJun 5, 2015
  8. Michael HaggertyJun 5, 2015
  9. 1/4 lockfile: replace random() by rand()Johannes Sixt, Jun 5, 2015
  10. 2/4 help.c: wrap wait-only poll() invocation in sleep_millisec()Johannes Sixt, Jun 5, 2015
  11. 3/4 lockfile: convert retry timeout computations to millisecondJohannes Sixt, Jun 5, 2015
  12. 4/4 lockfile: wait using sleep_millisec() instead of select()Johannes Sixt, Jun 5, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.