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

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

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Jun 4, 2015, 11:42 UTC
Message-ID
<557039AE.3020107@alum.mit.edu>
In-Reply-To
<55700F10.8030806@kdbg.org>
On 06/04/2015 10:40 AM, Johannes Sixt wrote:
Show 17 quoted lines
> Am 30.05.2015 um 19:12 schrieb Junio C Hamano:
>> Johannes Sixt <j6t@kdbg.org> writes:
>>
>>> There you have it: Look the other way for a while, and people start
>>> using exotic stuff... ;)
>>
>> Is it exotic to have random/srandom?  Both are in POSIX and 4BSD;
>> admittedly rand/srand are written down in C89 and later, so they
>> might be more portable, but I recall the prevailing wisdom is to
>> favor random over rand for quality of randomness and portability, so
>> I am wondering if it may be a better approach to keep the code as-is
>> and do a compat/random.c based on either rand/srand (or use posix
>> sample implementation [*1*]).
> 
> For our purposes here, the linear congruence of rand() is certainly
> sufficient. At this time, compatibility functions for random/srandom
> would just mean a lot of work for little gain.

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.

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

Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
Previous: Johannes SixtNext: Junio C Hamano
Message 4 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.