diff options
author | Pekka Lampila <pekka.lampila@iki.fi> | 2014-03-02 00:20:48 +0200 |
---|---|---|
committer | Pekka Lampila <pekka.lampila@iki.fi> | 2014-03-02 00:26:02 +0200 |
commit | 6124e914b64a2c98d4b69b5d8b532840646883b6 (patch) | |
tree | 458dbd636ffdd35049b285974eb050534e9ad3da /crawl-ref/source/dbg-asrt.cc | |
parent | 68cb4700d77c36772b72d9174deeabd92485cdf7 (diff) | |
download | crawl-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.cc | 25 |
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); } |