]> git.pond.sub.org Git - empserver/blobdiff - src/server/main.c
Fix crash dump not to mess up streams
[empserver] / src / server / main.c
index cc8e669932656b54cc94dd1c6ef985b7368aa5fe..b619fb20826267a71934b81726a39466e6aa9f89 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
  *  ---
  *
  *  main.c: Empire Server main, startup and shutdown
- * 
+ *
  *  Known contributors to this file:
  *     Dave Pare, 1994
  *     Steve McClure, 1996, 1998
  *     Doug Hay, 1998
- *     Ron Koenderink, 2004-2005
+ *     Ron Koenderink, 2004-2009
  *     Markus Armbruster, 2005-2008
  */
 
@@ -324,13 +324,14 @@ crash_dump(void)
     pid_t pid;
     int status;
 
+    fflush(NULL);
     pid = fork();
     if (pid < 0) {
        logerror("Can't fork for crash dump (%s)", strerror(errno));
        return;
     }
     if (pid == 0)
-       abort();                /* child */
+       raise(SIGABRT);         /* child */
 
     /* parent */
     while (waitpid(pid, &status, 0) < 0) {
@@ -340,6 +341,7 @@ crash_dump(void)
            return;
        }
     }
+    run_hook(post_crash_dump_hook, "post-crash-dump");
     logerror("Crash dump complete");
 #endif
 }
@@ -381,8 +383,6 @@ start_server(int flags)
        exit(1);
 
     empth_create(player_accept, 50 * 1024, flags, "AcceptPlayers", 0);
-    empth_create(player_kill_idle, 50 * 1024, flags, "KillIdle", 0);
-    empth_create(delete_lostitems, 50 * 1024, flags, "DeleteItems", 0);
 
     market_init();
     update_init();