local uv = require('luv')

local ctx = uv.new_work(
    function(n) --work,in threadpool
        local uv = require('luv')
        local t = uv.thread_self()
        uv.sleep(100)
        return n*n,n
    end,
    function(r,n) print(string.format('%d => %d',n,r)) end    --after work, in loop thread
)
uv.queue_work(ctx,2)
uv.queue_work(ctx,4)
uv.queue_work(ctx,6)
uv.queue_work(ctx,8)
uv.queue_work(ctx,10)

uv.run('default')
