Skip to content

Commit 9c25b2e

Browse files
committed
open file descriptors on startup
1 parent ce9069d commit 9c25b2e

File tree

1 file changed

+3
-13
lines changed

1 file changed

+3
-13
lines changed

stdlib/Random/src/RNGs.jl

+3-13
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,9 @@ else # !windows
2626

2727
rand(rd::RandomDevice, sp::SamplerBoolBitInteger) = read(getfile(rd), sp[])
2828

29-
function getfile(rd::RandomDevice)
30-
tid = Threads.threadid()
31-
devrandom = rd.unlimited ? DEV_URANDOM : DEV_RANDOM
32-
@assert 0 < tid <= length(devrandom)
33-
@inbounds if isassigned(devrandom, tid)
34-
devrandom[tid]
35-
else
36-
devrandom[tid] = open(rd.unlimited ? "/dev/urandom" : "/dev/random")
37-
end
38-
end
29+
getfile(rd::RandomDevice) = @inbounds DEV_RANDOM[1 + rd.unlimited]
3930

4031
const DEV_RANDOM = IOStream[]
41-
const DEV_URANDOM = IOStream[]
4232

4333
end # os-test
4434

@@ -310,9 +300,9 @@ end
310300

311301
function __init__()
312302
resize!(empty!(THREAD_RNGs), Threads.nthreads()) # ensures that we didn't save a bad object
303+
313304
if !Sys.iswindows()
314-
resize!(empty!(DEV_RANDOM), Threads.nthreads())
315-
resize!(empty!(DEV_URANDOM), Threads.nthreads())
305+
push!(empty!(DEV_RANDOM), open("/dev/random"), open("/dev/urandom"))
316306
end
317307
end
318308

0 commit comments

Comments
 (0)