diff options
| author | ruki <[email protected]> | 2020-03-08 18:06:23 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-03-08 18:06:23 +0800 |
| commit | 07cb69433cdc6a8d60504ae88cc6251f9c69201a (patch) | |
| tree | 1e4554c8f1941a620c0240d5d2c8e43e2d7789e5 /xmake/modules/private/async/jobpool.lua | |
| parent | 3f5723c632d0734ce3ea93e174cdf099eeefb543 (diff) | |
fix jobpool
Diffstat (limited to 'xmake/modules/private/async/jobpool.lua')
| -rw-r--r-- | xmake/modules/private/async/jobpool.lua | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/xmake/modules/private/async/jobpool.lua b/xmake/modules/private/async/jobpool.lua index 07f651d11..956ee9300 100644 --- a/xmake/modules/private/async/jobpool.lua +++ b/xmake/modules/private/async/jobpool.lua @@ -35,17 +35,41 @@ function jobpool:rootjob() return self._rootjob end +-- new job +-- +-- @param name the job name +-- @param run the run command/script +-- +function jobpool:newjob(name, run) + return {name = name, run = run} +end + -- add job to the given job node -- --- @param rootjob the root job node +-- @param job the job +-- @param rootjob the root job node (optional) +-- +-- or +-- -- @param name the job name -- @param run the run command/script +-- @param rootjob the root job node (optional) -- -function jobpool:addjob(name, run, rootjob) +function jobpool:addjob(job_or_name, ...) + local args = table.pack(...) + local job + local rootjob + if type(job_or_name) == "table" then + job = job_or_name + rootjob = args[1] + else + rootjob = args[2] + job = {name = job_or_name, run = args[1]} + end rootjob = rootjob or self:rootjob() - local job = {name = name, run = run, _parent = rootjob} rootjob._deps = rootjob._deps or dlist:new() rootjob._deps:push(job) + job._parent = rootjob self._count = self._count + 1 return job end |
