Skip to content

Commit 5ce230a

Browse files
Replace runner graph with single list
Replace it with a single Vec which contains the list of crates to build; each worker just pops the next crate in the list and then executes all of the steps for that crate in series (reading configuration etc as necessary). We can in theory separate out the toolchains such that each worker only handles one toolchain (which would likely save disk space), but that is extra work and does not seem particularly beneficial at this time. It would also not be that hard to just duplicate the crate list N times and have each worker created with a specific toolchain and keep this setup almost as-is. Overall this is a much simpler approach, removing a considerable amount of complexity from the workers and essentially eliminating any worker thread synchronization (e.g., condvars, running/not running tasks, etc). Popping from the Vec of crates is fast and worker threads will terminate when the list is exhausted, but will otherwise just work on the next crate in queue. This nearly matches the current setup -- today a crate is likely scheduled in parallel for each toolchain across two worker threads -- but it shouldn't make a significant difference in overall runtimes.
1 parent b350b9f commit 5ce230a

File tree

3 files changed

+122
-435
lines changed

3 files changed

+122
-435
lines changed

src/runner/graph.rs

Lines changed: 0 additions & 350 deletions
This file was deleted.

0 commit comments

Comments
 (0)