summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dbg-asrt.cc
diff options
context:
space:
mode:
authorPekka Lampila <pekka.lampila@iki.fi>2014-03-02 00:20:48 +0200
committerPekka Lampila <pekka.lampila@iki.fi>2014-03-02 00:26:02 +0200
commit6124e914b64a2c98d4b69b5d8b532840646883b6 (patch)
tree458dbd636ffdd35049b285974eb050534e9ad3da /crawl-ref/source/dbg-asrt.cc
parent68cb4700d77c36772b72d9174deeabd92485cdf7 (diff)
downloadcrawl-ref-6124e914b64a2c98d4b69b5d8b532840646883b6.tar.gz
crawl-ref-6124e914b64a2c98d4b69b5d8b532840646883b6.zip
Do tiles.shutdown() earlier when handling a crash.
Trying to avoid socket being left open, while still sending assert message and crash log file name to the WebTiles server.
Diffstat (limited to 'crawl-ref/source/dbg-asrt.cc')
-rw-r--r--crawl-ref/source/dbg-asrt.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/crawl-ref/source/dbg-asrt.cc b/crawl-ref/source/dbg-asrt.cc
index 9269564e2f..005e8fd122 100644
--- a/crawl-ref/source/dbg-asrt.cc
+++ b/crawl-ref/source/dbg-asrt.cc
@@ -617,6 +617,10 @@ void do_crash_dump()
// info to stderr and quit.
fprintf(stderr, "Crashed while calling exit()!!!!\n");
+#ifdef USE_TILE_WEB
+ tiles.shutdown();
+#endif
+
_dump_ver_stuff(stderr);
dump_crash_info(stderr);
@@ -626,6 +630,18 @@ void do_crash_dump()
return;
}
+ // Want same time for file name and crash milestone.
+ const time_t t = time(NULL);
+
+#ifdef USE_TILE_WEB
+ char basename[180] = {};
+ tiles.send_exit_reason("crash", _assert_msg);
+ snprintf(basename, sizeof(basename), "crash-%s-%s", you.your_name.c_str(),
+ make_file_time(t).c_str());
+ tiles.send_dump_info("crash", basename);
+ tiles.shutdown();
+#endif
+
string dir = (!Options.morgue_dir.empty() ? Options.morgue_dir :
!SysEnv.crawl_dir.empty() ? SysEnv.crawl_dir
: "");
@@ -635,8 +651,6 @@ void do_crash_dump()
char name[180] = {};
- // Want same time for file name and crash milestone.
- const time_t t = time(NULL);
snprintf(name, sizeof(name), "%scrash-%s-%s.txt", dir.c_str(),
you.your_name.c_str(), make_file_time(t).c_str());
@@ -764,13 +778,6 @@ void do_crash_dump()
mark_milestone("crash", _assert_msg, "", t);
-#ifdef USE_TILE_WEB
- tiles.send_exit_reason("crash", _assert_msg);
- snprintf(name, sizeof(name), "crash-%s-%s", you.your_name.c_str(),
- make_file_time(t).c_str());
- tiles.send_dump_info("crash", name);
-#endif
-
if (file != stderr)
fclose(file);
}