fix freeze with -j and sync targets

main
Codinget 4 years ago
parent fcf7c3fa07
commit 31fcc58ccd
  1. 2
      moonbuild/core/DAG.moon
  2. 2
      moonbuild/core/multiprocessexecutor.moon
  3. 4
      out/moonbuild

@ -123,7 +123,7 @@ class DepNode
return false return false
for file in *@ins for file in *@ins
if not exists file if not exists file
error "Node #{name} has ran all of its parents, but can't run since #{file} doesn't exist" error "Node #{@name} has ran all of its parents, but can't run since #{file} doesn't exist. Did you mean to use after instead of depends?"
return true return true
build: (opts={}) => build: (opts={}) =>

@ -39,7 +39,7 @@ class Executor
addprocess: (node, opts) => addprocess: (node, opts) =>
if node.sync if node.sync
while @nprocesses != 0 while @nprocesses != 0
@waitprocess @waitprocess!
node\build opts node\build opts
node.built = true node.built = true
node\updatecache! node\updatecache!

@ -1821,7 +1821,7 @@ do
for _index_0 = 1, #_list_1 do for _index_0 = 1, #_list_1 do
local file = _list_1[_index_0] local file = _list_1[_index_0]
if not exists(file) then if not exists(file) then
error("Node " .. tostring(name) .. " has ran all of its parents, but can't run since " .. tostring(file) .. " doesn't exist") error("Node " .. tostring(self.name) .. " has ran all of its parents, but can't run since " .. tostring(file) .. " doesn't exist. Did you mean to use after instead of depends?")
end end
end end
return true return true
@ -2259,7 +2259,7 @@ do
addprocess = function(self, node, opts) addprocess = function(self, node, opts)
if node.sync then if node.sync then
while self.nprocesses ~= 0 do while self.nprocesses ~= 0 do
local _ = self.waitprocess self:waitprocess()
end end
node:build(opts) node:build(opts)
node.built = true node.built = true

Loading…
Cancel
Save