fix(runner): bring concurrency back

This commit is contained in:
Folke Lemaitre 2024-06-26 18:45:40 +02:00
parent 206d208018
commit 56075b57c4
No known key found for this signature in database
GPG Key ID: 41F8B1FBACAE2040
1 changed files with 14 additions and 12 deletions

View File

@ -96,19 +96,21 @@ function Runner:_start()
waiting = waiting + 1
wait_step = s.step
elseif not running then
local plugin = self:plugin(name)
if s.step == #self._pipeline then
s.task = nil
plugin._.working = false
elseif s.step < #self._pipeline then
active = active + 1
s.step = s.step + 1
step = self._pipeline[s.step]
if step.task == "wait" then
if not self._opts.concurrency or active < self._opts.concurrency then
local plugin = self:plugin(name)
if s.step == #self._pipeline then
s.task = nil
plugin._.working = false
else
s.task = self:queue(plugin, step)
plugin._.working = not not s.task
elseif s.step < #self._pipeline then
active = active + 1
s.step = s.step + 1
step = self._pipeline[s.step]
if step.task == "wait" then
plugin._.working = false
else
s.task = self:queue(plugin, step)
plugin._.working = not not s.task
end
end
end
else