]> skyeroc.xyz Git - dgamelaunch/commitdiff
Terminate if user chooses not to kill a hung game, and don't delete lockfile
authorJilles Tjoelker <jilles@stack.nl>
Sun, 4 Jan 2004 02:31:00 +0000 (02:31 +0000)
committerJilles Tjoelker <jilles@stack.nl>
Sun, 4 Jan 2004 02:31:00 +0000 (02:31 +0000)
in that case.
Move purge_stale_locks() call to before final endwin() in main().

git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@69 db0b04b0-f4d1-0310-9a6d-de3e77497b0e

dgamelaunch.c

index b8a2b5c67e39556cc906af38e02371d849d78d3f..7c4195482893d61210e1c99723129315906723ab 100644 (file)
@@ -1130,7 +1130,7 @@ purge_stale_locks (void)
       char *colon;
       char buf[16];
       pid_t pid;
-      int seconds = 0;
+      int seconds;
 
       if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, ".."))
          continue;
@@ -1150,7 +1150,6 @@ purge_stale_locks (void)
         graceful_exit (203);
 
       fclose (ipfile);
-      unlink (dent->d_name);
 
       pid = atoi (buf);
 
@@ -1159,6 +1158,7 @@ purge_stale_locks (void)
       errno = 0;
 
       /* Wait for it to stop running */
+      seconds = 0;
       while (kill (pid, 0) == 0)
         {
           seconds++;
@@ -1175,9 +1175,16 @@ purge_stale_locks (void)
                   kill (pid, SIGTERM);
                   break;
                 }
+             else
+               {
+                  endwin();
+                 fprintf(stderr, "Sorry, no nethack for you now, please "
+                       "contact the admin.\n");
+                 graceful_exit(1);
+               }
             }
         }
-      seconds = 0;
+      unlink (dent->d_name);
     }
 
   closedir (pdir);
@@ -1285,7 +1292,7 @@ main (void)
   assert (loggedin);
 
   purge_stale_locks ();
-  
+
   endwin ();
 
   /* environment */