mirror of
https://github.com/holub/mame
synced 2025-06-06 04:43:45 +03:00
49 lines
1.4 KiB
Lua
49 lines
1.4 KiB
Lua
return require('lib/tap')(function (test)
|
|
test("test threadpool", function(print,p,expect,_uv)
|
|
p('Please be patient, the test cost a lots of time')
|
|
local count = 1000 --for memleaks dected
|
|
local step = 0
|
|
local ctx
|
|
ctx = _uv.new_work(
|
|
function(n,s) --work,in threadpool
|
|
local uv = require('luv')
|
|
local t = uv.thread_self()
|
|
uv.sleep(100)
|
|
return n,n*n, tostring(uv.thread_self()),s
|
|
end,
|
|
function(n,r,id, s)
|
|
assert(n*n==r)
|
|
if step < count then
|
|
_uv.queue_work(ctx,n,s)
|
|
step = step + 1
|
|
if (step % 100==0) then
|
|
p(string.format('run %d%%', math.floor(step*100/count)))
|
|
end
|
|
end
|
|
end --after work, in loop thread
|
|
)
|
|
local ls = string.rep('-',4096)
|
|
|
|
_uv.queue_work(ctx,2,ls)
|
|
_uv.queue_work(ctx,4,ls)
|
|
_uv.queue_work(ctx,6,ls)
|
|
_uv.queue_work(ctx,-2,ls)
|
|
_uv.queue_work(ctx,-11,ls)
|
|
_uv.queue_work(ctx,2,ls)
|
|
_uv.queue_work(ctx,4,ls)
|
|
_uv.queue_work(ctx,6,ls)
|
|
_uv.queue_work(ctx,-2,ls)
|
|
_uv.queue_work(ctx,-11,ls)
|
|
_uv.queue_work(ctx,2,ls)
|
|
_uv.queue_work(ctx,4,ls)
|
|
_uv.queue_work(ctx,6,ls)
|
|
_uv.queue_work(ctx,-2,ls)
|
|
_uv.queue_work(ctx,-11,ls)
|
|
_uv.queue_work(ctx,2,ls)
|
|
_uv.queue_work(ctx,4,ls)
|
|
_uv.queue_work(ctx,6,ls)
|
|
_uv.queue_work(ctx,-2,ls)
|
|
_uv.queue_work(ctx,-11,ls)
|
|
end)
|
|
end)
|