From 02d497165a0b1fe064477f3248d86f4cb5b59a9e Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sun, 28 Sep 2014 13:49:44 +0200 Subject: WorldServer/Misc: Log possible errors on shutdown Log possible error on shutdown happening when trying to cancel any I/O sync operation in CliThread, refers to #13201 --- src/server/worldserver/Main.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/server/worldserver') diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 07101e61eb6..bd028069c62 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -280,7 +280,20 @@ extern int main(int argc, char** argv) if (cliThread != nullptr) { #ifdef _WIN32 - CancelSynchronousIo(cliThread->native_handle()); + if (!CancelSynchronousIo(cliThread->native_handle())) + { + DWORD errorCode = GetLastError(); + LPSTR errorBuffer; + + DWORD formatReturnCode = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, errorCode, 0, (LPTSTR)&errorBuffer, 0, nullptr); + if (!formatReturnCode) + errorBuffer = "Unknown error"; + + TC_LOG_ERROR("server.worldserver", "Error cancelling I/O of CliThread, error code %u, detail: %s", + errorCode, errorBuffer); + LocalFree(errorBuffer); + } #endif cliThread->join(); delete cliThread; -- cgit v1.2.3