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
for file in *@ins
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
build: (opts={}) =>

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

@ -1821,7 +1821,7 @@ do
for _index_0 = 1, #_list_1 do
local file = _list_1[_index_0]
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
return true
@ -2259,7 +2259,7 @@ do
addprocess = function(self, node, opts)
if node.sync then
while self.nprocesses ~= 0 do
local _ = self.waitprocess
self:waitprocess()
end
node:build(opts)
node.built = true

Loading…
Cancel
Save