summaryrefslogtreecommitdiffstats
path: root/crates
AgeCommit message (Collapse)Author
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-26executor: context: remove unneeded Serialize impl on TaskRef/OutputRefMatthias Schiffer
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: hold lock on task state dir while task is runningMatthias Schiffer
Do not allow concurrent runs of the same task.
2021-10-26runner: do not delete whole task dir, only layer and work dirMatthias Schiffer
We will also store a lockfile in the taskdir that must not be deleted.
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 main crate to subdirectoryMatthias Schiffer
2021-10-25Move runner into separate crateMatthias Schiffer
2021-10-24Split defintions used by both runner and executor into separate crateMatthias Schiffer
Also get rid of the Runner trait - different runner implementations do not make sense with our current design.