Commit message (Collapse) | Author | ||
---|---|---|---|
2023-07-18 | switch to JSON-RPC as message format | Egor Tensin | |
Instead of the weird `struct msg` I had, I switched to the JSON-RPC format. It's basically the same, but has a well-defined semantics in case of errors. | |||
2023-06-11 | msg: rework some APIs | Egor Tensin | |
2023-06-09 | msg: add msg_send_from_argv shortcut | Egor Tensin | |
2023-05-15 | msg: strings, not words | Egor Tensin | |
2023-05-14 | msg: add functions for one-off communication | Egor Tensin | |
2023-05-14 | msg: enforce at least one word | Egor Tensin | |
Also, move some stuff to net.c where it belongs. | |||
2023-05-13 | fix unnecessary #include-s | Egor Tensin | |
2023-05-13 | add command module to handle request-response communications | Egor Tensin | |
2023-04-29 | make struct ci_queue_entry opaque | Egor Tensin | |
2022-12-02 | add copyright notices | Egor Tensin | |
2022-08-28 | make proper "error" messages | Egor Tensin | |
Previously, the client had no way to distinguish errors from succesful calls. | |||
2022-08-28 | holy crap, it actually kinda works now | Egor Tensin | |
Previously, I had a stupid system where I would create a thread after every accept(), and put worker descriptors in a queue. A special "scheduler" thread would then pick them out, and give out jobs to complete. The problem was, of course, I couldn't conveniently poll job status from workers. I thought about using poll(), but that turned out to be a horribly complicated API. How do I deal with partial reads, for example? I don't honestly know. Then it hit me that I could just use the threads that handle accept()ed connections as "worker threads", which would synchronously schedule jobs and wait for them to complete. This solves every problem and removes the need for a lot of inter-thread synchronization magic. It even works now, holy crap! You can launch and terminate workers at will, and they will pick up new jobs automatically. As a side not, msg_recv_and_handle turned out to be too limiting and complicated for me, so I got rid of that, and do normal msg_recv/msg_send calls. | |||
2022-08-25 | msg: add msg_copy, refactoring | Egor Tensin | |
2022-08-25 | msg: refactoring | Egor Tensin | |
2022-08-25 | msg: add msg_dump_unknown | Egor Tensin | |
2022-08-23 | cmd -> msg | Egor Tensin | |
This I feel better conveys the meaning. |