summaryrefslogtreecommitdiffstats
path: root/crates/runner/src/lib.rs
AgeCommit message (Collapse)Author
2021-11-01runner: set CLOEXEC on signalfdMatthias Schiffer
2021-10-28Split paths module into driver and runner partsMatthias Schiffer
There are still a few remaining paths that are defined in both driver and runner.
2021-10-27runner: get rid of spawn argument funnellingMatthias Schiffer
2021-10-27runner: add Steal wrapper, use for socketMatthias Schiffer
A deref wrapper that allows taking out its contents, which is convenient after a fork.
2021-10-26runner: move Checkable trait into separabe moduleMatthias Schiffer
2021-10-26runner: remove another layer of child processesMatthias Schiffer
With the restructuring around the poll loop and moving the job token handling to the task process, this has become unnecessary as well.
2021-10-26runner: move jobserver token handling into task processMatthias Schiffer
We can avoid holding onto a token while waiting on a lock this way. Abnormal exits that would make us lose tokens should not happen here; if they do, the runner PID1 will stop the whole build, so a lost token does not matter.
2021-10-26runner: maintain list of task PIDs in contextMatthias Schiffer
2021-10-26runner: add RunnerContext structMatthias Schiffer
Bundle common variables passed to different functions.
2021-10-26runner: move more code into the actual task processMatthias Schiffer
Leave only the jobserver token handling in the task spawner process.
2021-10-26runner: pass jobserver to task handler as referenceMatthias Schiffer
Some code simplification.
2021-10-26runner: handle reaping and requests in the poll loopMatthias Schiffer
2021-10-26runner: wait for signals using poll()Matthias Schiffer
2021-10-26runner: use signal fd to wait for exiting child processesMatthias Schiffer
Will be used to poll for new tasks and signals in the same process.
2021-10-26Replace ipc-channel with UNIX sockets and manual FD passingMatthias Schiffer
The new implementation is more flexible, as it allows mixed polling with other FD types, and it saves us a whole zoo of dependencies.
2021-10-26Switch to 2021 editionMatthias Schiffer
2021-10-26runner: make lock() function more genericMatthias Schiffer
2021-10-25Allow to set the maximum number of jobs on the command lineMatthias Schiffer
2021-10-25Add lockfile for build state directoryMatthias Schiffer
Use flock() to ensure that there are no concurrent instances using the same build state. More fine-gained locking may be implemented in the future.
2021-10-25Move runner into separate crateMatthias Schiffer