From e657b09bf9998c575138d4fb4a6ebf5463e3aebb Mon Sep 17 00:00:00 2001 From: onefang Date: Wed, 11 Aug 2021 19:32:33 +1000 Subject: More shutdown clean ups. --- src/sledjchisl/sledjchisl.c | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/src/sledjchisl/sledjchisl.c b/src/sledjchisl/sledjchisl.c index f04d5ff..b946f95 100644 --- a/src/sledjchisl/sledjchisl.c +++ b/src/sledjchisl/sledjchisl.c @@ -7306,6 +7306,17 @@ static void cleanup(void) // TODO - not sure why, but this gets called twice on quitting sometimes. C("Caught signal, or quitting, cleaning up."); + char *cmd = xmprintf("%s/sledjchisl.socket", scRun); + + if (qfile_exist(cmd)) + { + free(cmd); + cmd = xmprintf("rm %s/sledjchisl.socket", scRun); + if (!WIFEXITED(system(cmd))) + E("rm command failed!"); + free(cmd); + } + if (accountPages) { qhashtbl_obj_t obj; @@ -7367,6 +7378,18 @@ static void cleanup(void) } if (configs) configs->free(configs); configs = NULL; + +/* tmux should clean up it's own socket. Doesn't seem to care anyway. + cmd = xmprintf("%s/%s", scRun, Tsocket); + if (qfile_exist(cmd)) + { + free(cmd); + cmd = xmprintf("rm %s/%s", scRun, Tsocket); + if (!WIFEXITED(system(cmd))) + E("rm command failed!"); + free(cmd); + } +*/ } @@ -7902,6 +7925,17 @@ jit library is loaded or the JIT compiler will not be activated. { // Stop all the sims. forEachSim(NULL, stopSims, NULL); + + if (checkSimIsRunning("ROBUST")) + { + sendTmuxCmd("@0.%0", "quit"); + while (checkSimIsRunning("ROBUST")) + usleep(100000); + usleep(10000); + sendTmuxCmd("@0.%0", "exit"); + I("ROBUST has stopped in tmux ID @0.%%0."); + } + I("Closing all the other windows."); // First figure out what panes and windows are left. snprintf(toybuf, sizeof(toybuf), "echo 'IDs={' >%s/IDs_ALL.lua", scTemp); @@ -7912,6 +7946,11 @@ jit library is loaded or the JIT compiler will not be activated. snprintf(toybuf, sizeof(toybuf), "%s/IDs_ALL.lua", scTemp); qtreetbl_t *IDs = Lua2tree(toybuf, "IDs"); + char *c = xmprintf("rm -fr %s/*", scTemp); + if (!WIFEXITED(system(c))) + E("rm command failed! %s", c); + free(c); + qtreetbl_obj_t obj0; memset((void*)&obj0, 0, sizeof(obj0)); IDs->lock(IDs); @@ -7925,10 +7964,6 @@ jit library is loaded or the JIT compiler will not be activated. IDs->unlock(IDs); freeLuaTree(IDs); - char *c = xmprintf("rm -fr %s/*", scTemp); - if (!WIFEXITED(system(c))) - E("rm command failed! %s", c); - free(c); } else if (START == currentMode) { -- cgit v1.1