cvs commit: src/lib/libc/gen arc4random.c

David Schultz das at FreeBSD.ORG
Wed Mar 24 17:39:53 PST 2004

On Wed, Mar 24, 2004, Brian Feldman wrote:
> green       2004/03/24 06:44:57 PST
>   FreeBSD src repository
>   Modified files:
>     lib/libc/gen         arc4random.c 
>   Log:
>   Add locking so that arc4random(3) functions are all reentrant for
>   pthreads.

I think you mean thread-safe, not reentrant.  Also:
PR:	63287

AFAIK, there's no standard for how arc4random() is supposed to
behave, but the new behavior is a break from that of other BSDs,
and from the behavior of random(), so the change should probably
be documented in the manpage.

FWIW, on my UP Pentium 4 with SMT, this adds roughly 3% overhead
for unthreaded apps and 52% overhead for threaded apps.  It is
conceivable that an application writer would want access to the
raw interface in order to serialize calls manually for efficiency,
but I'm not such an application writer, so I won't complain.

More information about the cvs-src mailing list