27 lines
500 B
Lua
27 lines
500 B
Lua
![]() |
local _M = {}
|
||
|
|
||
|
local seeds = {}
|
||
|
local original_randomseed = math.randomseed
|
||
|
math.randomseed = function(seed)
|
||
|
local pid = ngx.worker.pid()
|
||
|
|
||
|
if seeds[pid] then
|
||
|
ngx.log(ngx.WARN,
|
||
|
string.format("ignoring math.randomseed(%d) since PRNG is already seeded for worker %d", seed, pid))
|
||
|
return
|
||
|
end
|
||
|
|
||
|
original_randomseed(seed)
|
||
|
seeds[pid] = seed
|
||
|
end
|
||
|
|
||
|
local function randomseed()
|
||
|
math.randomseed(ngx.time() + ngx.worker.pid())
|
||
|
end
|
||
|
|
||
|
function _M.init_worker()
|
||
|
randomseed()
|
||
|
end
|
||
|
|
||
|
return _M
|