Currently the processes are started by nodes and half-ass managed by these threads. The whole thing needs to be shifted to a single process manager that the node makes a request from. This process manager can than watch dog and kill processes that it needs to. Another issue we can avoid is currently the socket manager will dispose client sockets before process has completed which means the process (if using socket handles) has a broken socket. With better process management we can block socket destroying until the process is TRULY killed.
an example of this is to disconnect on a DOSBox process while not suppressing errors. You will see how the network socket is destroyed before the process has a chance to shutdown.
Currently the processes are started by nodes and half-ass managed by these threads. The whole thing needs to be shifted to a single process manager that the node makes a request from. This process manager can than watch dog and kill processes that it needs to. Another issue we can avoid is currently the socket manager will dispose client sockets before process has completed which means the process (if using socket handles) has a broken socket. With better process management we can block socket destroying until the process is TRULY killed.