diff options
-rw-r--r-- | src/util.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/util.cc b/src/util.cc index e8354b8..63bd2cd 100644 --- a/src/util.cc +++ b/src/util.cc @@ -46,7 +46,15 @@ void Fatal(const char* msg, ...) { vfprintf(stderr, msg, ap); va_end(ap); fprintf(stderr, "\n"); +#ifdef WIN32 + // On Windows, some tools may inject extra threads. + // exit() may block on locks held by those threads, so forcibly exit. + fflush(stderr); + fflush(stdout); + ExitProcess(1); +#else exit(1); +#endif } void Warning(const char* msg, ...) { |