aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/worker_main.c (unfollow)
Commit message (Collapse)Author
2023-05-15rework server-worker communicationEgor Tensin
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.
2023-05-13fix unnecessary #include-sEgor Tensin
2023-05-13use -std=c17 -WpedanticEgor Tensin
2023-05-13best practices & coding style fixesEgor Tensin
* 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.
2023-05-06get rid of __attribute__((constructor))Egor Tensin
Explicit is better than implicit.
2023-04-29cmd_line: read executable name from /proc/self/exeEgor Tensin
2023-04-29dedupe command line routinesEgor Tensin
2023-04-29make struct worker opaqueEgor Tensin
2022-12-02add copyright noticesEgor Tensin
2022-08-26worker: allow graceful shutdownsEgor Tensin
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.
2022-08-26add some more codeEgor Tensin
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.
2022-08-23add some codeEgor Tensin
A basic client-server app, the client sends commands as an array of strings. Hopefully I didn't mess up, and hopefully it'll be useful.