aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/worker_main.c (follow)
Commit message (Collapse)AuthorAge
* rework server-worker communicationEgor Tensin2023-05-15
| | | | | | | | | | | | | | | | | | OK, this is a major rework. * tcp_server: connection threads are not detached anymore, the caller has to clean them up. This was done so that the server can clean up the threads cleanly. * run_queue: simple refactoring, run_queue_entry is called just run now. * server: worker threads are now killed when a run is assigned to a worker. * worker: the connection to server is no longer persistent. A worker sends "new-worker", waits for a task, closes the connection, and when it's done, sends the "complete" message and waits for a new task. This is supposed to improve resilience, since the worker-server connections don't have to be maintained while the worker is doing a CI run.
* fix unnecessary #include-sEgor Tensin2023-05-13
|
* use -std=c17 -WpedanticEgor Tensin2023-05-13
|
* best practices & coding style fixesEgor Tensin2023-05-13
| | | | | | | | * I don't really need to declare all variables at the top of the function anymore. * Default-initialize variables more. * Don't set the output parameter until the object is completely constructed.
* get rid of __attribute__((constructor))Egor Tensin2023-05-06
| | | | Explicit is better than implicit.
* cmd_line: read executable name from /proc/self/exeEgor Tensin2023-04-29
|
* dedupe command line routinesEgor Tensin2023-04-29
|
* make struct worker opaqueEgor Tensin2023-04-29
|
* add copyright noticesEgor Tensin2022-12-02
|
* worker: allow graceful shutdownsEgor Tensin2022-08-26
| | | | | | | | | | Well, maybe "graceful" is a strong word, but now you _can_ do ./server & ./worker & ./client ci_run URL REV && kill "$( pidof worker )" and the worker will wait for the CI run to complete.
* add some more codeEgor Tensin2022-08-26
This adds a basic "worker" program. You can now do something like ./server & ./worker & ./client ci_run URL REV and the server should pass a message to worker, after which it should clone the repository at URL, checkout REV, and try to run the CI script. It's extremely unfinished: I need to sort out the graceful shutdown, how the server manages workers, etc.