Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-10-29 | driver: recipe: use common error types | Matthias Schiffer | |
2021-10-28 | Pass workdir from driver to runner | Matthias Schiffer | |
The paths modules of driver and runner do not contain any duplicates anymore. One remaining path that still appears in more places than it should is /build. | |||
2021-10-28 | runner: drop paths::abs() function | Matthias Schiffer | |
2021-10-28 | Move handling of current directory of task to driver | Matthias Schiffer | |
2021-10-28 | Pass target directory for download archives from driver to runner | 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-28 | Pass full Output path to runner | Matthias Schiffer | |
Concatenate TASK_DESTDIR with output path in driver instead of runner to reduce amount of shared logic between driver and runner. | |||
2021-10-28 | Rename executor to driver | Matthias Schiffer | |
2021-10-28 | executor: move some state into separate struct | Matthias Schiffer | |
2021-10-28 | executor: use lazy_static for template engine | Matthias Schiffer | |
2021-10-27 | runner: get rid of spawn argument funnelling | Matthias Schiffer | |
2021-10-27 | runner: tar: simplify spawn call | Matthias Schiffer | |
The writing end of the pipe is moved to the child process, there is no need to funnel it back to the parent process just to drop it. | |||
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 | executor: context: remove unneeded Serialize impl on TaskRef/OutputRef | Matthias Schiffer | |
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: hold lock on task state dir while task is running | Matthias Schiffer | |
Do not allow concurrent runs of the same task. | |||
2021-10-26 | runner: do not delete whole task dir, only layer and work dir | Matthias Schiffer | |
We will also store a lockfile in the taskdir that must not be deleted. | |||
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 main crate to subdirectory | Matthias Schiffer | |
2021-10-25 | Move runner into separate crate | Matthias Schiffer | |
2021-10-24 | Split defintions used by both runner and executor into separate crate | Matthias Schiffer | |
Also get rid of the Runner trait - different runner implementations do not make sense with our current design. |