Andrew Kelley 1fa1484288 build runner: proper threaded dependency management
After sorting the step stack so that dependencies can be popped before
their dependants are popped, there is still a situation left to handle
correctly:

Example:

A depends on:
  B
  C
D depends on:
  E
  F

They will be ordered like this:

A B C D E F

If there are 6+ cores, then all of them will be evaluated at once,
incorrectly evaluating A and D before their dependencies.

Starting evaluation of F and then E is correct, but waiting until they
are done is not correct because it should start working on B and C as
well.

This commit solves the problem by computing dependants in the dependency
loop checking logic, and then having workers queue up their dependants
when they finish their own work.
2023-03-15 10:48:12 -07:00
..
2023-03-15 10:48:12 -07:00
2023-03-05 02:59:01 -05:00
2022-12-13 13:14:20 +02:00
2022-11-04 00:09:27 +03:30
2023-02-18 19:17:21 -07:00
2023-03-03 02:37:45 -05:00
2022-12-13 13:14:20 +02:00
2023-03-03 02:37:45 -05:00
2023-02-20 09:09:05 +11:00
2023-03-15 10:48:12 -07:00
2023-03-01 12:21:53 -05:00
2022-09-11 23:18:43 -04:00
2023-03-09 14:55:13 -06:00
2023-02-17 09:08:41 -07:00
2023-03-09 14:55:13 -06:00
2023-02-03 00:06:11 -07:00