Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-11-01 | runner: set CLOEXEC on signalfd | Matthias Schiffer | |
2021-10-28 | Split paths module into driver and runner parts | Matthias Schiffer | |
There are still a few remaining paths that are defined in both driver and runner. | |||
2021-10-27 | runner: get rid of spawn argument funnelling | Matthias Schiffer | |
2021-10-27 | runner: add Steal wrapper, use for socket | Matthias Schiffer | |
A deref wrapper that allows taking out its contents, which is convenient after a fork. | |||
2021-10-26 | runner: move Checkable trait into separabe module | Matthias Schiffer | |
2021-10-26 | runner: remove another layer of child processes | Matthias 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-26 | runner: move jobserver token handling into task process | Matthias 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-26 | runner: maintain list of task PIDs in context | Matthias Schiffer | |
2021-10-26 | runner: add RunnerContext struct | Matthias Schiffer | |
Bundle common variables passed to different functions. | |||
2021-10-26 | runner: move more code into the actual task process | Matthias Schiffer | |
Leave only the jobserver token handling in the task spawner process. | |||
2021-10-26 | runner: pass jobserver to task handler as reference | Matthias Schiffer | |
Some code simplification. | |||
2021-10-26 | runner: handle reaping and requests in the poll loop | Matthias Schiffer | |
2021-10-26 | runner: wait for signals using poll() | Matthias Schiffer | |
2021-10-26 | runner: use signal fd to wait for exiting child processes | Matthias Schiffer | |
Will be used to poll for new tasks and signals in the same process. | |||
2021-10-26 | Replace ipc-channel with UNIX sockets and manual FD passing | Matthias 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-26 | Switch to 2021 edition | Matthias Schiffer | |
2021-10-26 | runner: make lock() function more generic | Matthias Schiffer | |
2021-10-25 | Allow to set the maximum number of jobs on the command line | Matthias Schiffer | |
2021-10-25 | Add lockfile for build state directory | Matthias 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-25 | Move runner into separate crate | Matthias Schiffer | |