aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/worldserver/Main.cpp15
1 files changed, 14 insertions, 1 deletions
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;