summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-04-08 23:35:20 +0800
committerruki <[email protected]>2024-04-08 23:35:20 +0800
commit66f80d8574aeacc5bea61971d18c3e5368c151b8 (patch)
treee9086e253ea6d580dcb1da6b0c0ae75eca7c2a4a
parent34ebb2a55c530ec3c050b6dd93e09cef0f6af245 (diff)
update some comments
-rw-r--r--xmake/modules/private/async/jobpool.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/xmake/modules/private/async/jobpool.lua b/xmake/modules/private/async/jobpool.lua
index 533283681..1358e0e12 100644
--- a/xmake/modules/private/async/jobpool.lua
+++ b/xmake/modules/private/async/jobpool.lua
@@ -110,6 +110,7 @@ function jobpool:getfree()
-- get a free job from the leaf jobs
local leafjobs = self:_getleafjobs()
if not leafjobs:empty() then
+ -- try to get next free job fastly
if self._nextfree then
local job = self._nextfree
local nextfree = leafjobs:prev(job)
@@ -121,6 +122,7 @@ function jobpool:getfree()
job.status = JOB_STATUS_PENDING
return job
end
+ -- find the next free job
local removed_jobs = {}
for job in leafjobs:ritems() do
if self:_isfree(job) then
@@ -134,12 +136,12 @@ function jobpool:getfree()
table.insert(removed_jobs, job)
end
end
+ -- not found? if remove group and referenced node exist,
+ -- we try to remove them and find the next free job again
if #removed_jobs > 0 then
- -- try to remove group and referenced node
for _, job in ipairs(removed_jobs) do
self:remove(job)
end
- -- get free job again
for job in leafjobs:ritems() do
if self:_isfree(job) then
local nextfree = leafjobs:prev(job)