Follow-up Comment #3, bug #53152 (project make):

I think the problem is the outer loop in update_goal_chain():

- All goals are handle once per loop iteration.
- At the beginning of each iteration at least on child is reaped (if any
exist)

What happens is this:
First iteration:
- job for 'bar' is started
- child for 'bar' is reaped
- job for 'baz' is started
Second iteration:
- reap_children() waits forever for a child to finish

I think, reap_children() should only wait if no new action can be taken. I'm
not sure if that information is available. Maybe 'nothing changed' in the last
iteration (accumulating 'g->changed') is a good approximation?

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?53152>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to