41 Commits (7eb4e018b6ed5711361457c3b5740088529d6d6a)

Author SHA1 Message Date
Con Kolivas b297a35632 Remove unused buffer ram in send_client and demote messages to info level only 11 years ago
Con Kolivas 86e70edfbc Make all child processes ping the parent process at regular intervals and then die if it has disappeared. Do not attempt to send unix messages to dead processes and abort instantly on socket EINTR 11 years ago
Con Kolivas c4f0d57ae8 Fix various memory leaks 11 years ago
Con Kolivas a3a586ee6e Use the retry on EINTR only on unix sockets 11 years ago
Con Kolivas 7fabe1f14f With sigpipe masked, interrupted send calls are likely fatal 11 years ago
Con Kolivas f48558d2b5 Detach child processes from the tty leaving only the main process to talk to it and exit all processes in a consistent way with more information on termination 11 years ago
Con Kolivas c9f550207f Send one on all process failure codes 11 years ago
Con Kolivas f07fb994ed Fix missing close socket in connector 11 years ago
Con Kolivas 78c1b2dfda Make process instances an array within the ckpool struct allowing us to enable only those we need when we add more modules to future code 11 years ago
Con Kolivas 8631f33809 Accept ping requests on the various unix sockets 11 years ago
Con Kolivas b85946cc31 Failure to accept in connector should be a fatal error 11 years ago
Con Kolivas 4f1d13e922 Send the last remaining send request without checking if it is ready for writes to avoid busy looping 11 years ago
Con Kolivas 2ffdd791f7 Add support for dropclient being sent to the connector process 11 years ago
Con Kolivas bfb90fa632 Handle all poll revents with a recv and invalidate clients that don't respond 11 years ago
Con Kolivas 5721ec1dcf Reset revents before polling 11 years ago
Con Kolivas 68ea10ac53 Fix name 11 years ago
Con Kolivas 9290d1566a Remove old instances from regularly used hashtables 11 years ago
Con Kolivas dc9012d777 Use a 2nd hashtable of connected clients indexed by fd for fast lookup 11 years ago
Con Kolivas a615b56d76 Install signal handlers which push the signal to the top process which will try to gracefully shut down each child process 11 years ago
Con Kolivas 457f1c17ee Create a separate thread for sending messages to clients, not blocking on any clients not ready for reads 11 years ago
Con Kolivas eabd8848bc Add basic pool stats, updating and displaying them in a separate thread every 15s 11 years ago
Con Kolivas bab86af441 Optimise receiver loop 11 years ago
Con Kolivas 077825a09d Use only the one client instance struct in connector, ensuring it gets zeroed that way 11 years ago
Con Kolivas a6fe8f392c Sleep briefly, don't poll when no fds are present 11 years ago
Con Kolivas c1c5b22058 There is no need to poll every second in the receiver thread 11 years ago
Con Kolivas 328a85c1fe Only assume clients have disconnected on an error from recv 11 years ago
Con Kolivas b6030d3809 Close sockets immediately after every received message in connector and stratifier 11 years ago
Con Kolivas 9db3db3b8b Enable keepalive and nodelay for remote clients and remove mistaken setting of noblock, and add reuseaddr option to sockets 11 years ago
Con Kolivas 6a7e1bcc37 Add fake submit parsing and poll every second instead of millisecond 11 years ago
Con Kolivas 3bee9efed6 Remove invalidated clients from broadcasts 11 years ago
Con Kolivas 8be725bde6 Retry binding the connector to the socket for up to 2 minutes 11 years ago
Con Kolivas 7f0824260b Disconnect clients that send invalid json 11 years ago
Con Kolivas 72ebb96ef6 Return a json response to any valid json from the stratifier to connector to send to the relevant connected client 11 years ago
Con Kolivas 1b745f0db3 Pass recognised json messages sent to connector to stratifier with the added client_id field 11 years ago
Con Kolivas 718bf11a46 Reference clients by id, not fd since fd can be the same and be invalidated 11 years ago
Con Kolivas 5a0d3f8d24 Create a hashtable of workbases as they're created, removing them if they're older than 10 minutes old 11 years ago
Con Kolivas 438f8c4472 Add the beginnings of a sanity checking client message parser 11 years ago
Con Kolivas f2b32839c1 Create a client instance hash table and use it to determine which fds need to be polled 11 years ago
Con Kolivas 3c21f90aab Use poll to connect many clients and see which connections need to be read in connector 11 years ago
Con Kolivas bcbafba42e Create a thread from the connector process that listens for incoming connections and opens new connections for them 11 years ago
Con Kolivas 55b8e8424a Add connector process which will process all remote communications 11 years ago