summaryrefslogtreecommitdiff
path: root/src/os_win/os_thread.c
diff options
context:
space:
mode:
authorDavid Hows <david.hows@mongodb.com>2016-06-24 17:05:13 +1000
committerDavid Hows <david.hows@mongodb.com>2016-06-24 17:05:13 +1000
commitd8fb874fc40989cb9675e56ca80b3b64e6fa2ee3 (patch)
tree6f03ed5cde97aedc762215c14d23ee5305998a2b /src/os_win/os_thread.c
parentfb1663e6fc800be97c0ddc697b6f939dc610e08e (diff)
parent1f4aaa4490a82cf947afdabbb9214ee5b1850d13 (diff)
downloadmongodb-3.3.10.tar.gz
Merge branch 'develop' of github.com:wiredtiger/wiredtiger into mongodb-3.4mongodb-3.3.9mongodb-3.3.10mongodb-3.0.1
Diffstat (limited to 'src/os_win/os_thread.c')
-rw-r--r--src/os_win/os_thread.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/os_win/os_thread.c b/src/os_win/os_thread.c
index 2b846216442..a34dff776b6 100644
--- a/src/os_win/os_thread.c
+++ b/src/os_win/os_thread.c
@@ -31,19 +31,24 @@ __wt_thread_create(WT_SESSION_IMPL *session,
int
__wt_thread_join(WT_SESSION_IMPL *session, wt_thread_t tid)
{
- WT_DECL_RET;
+ DWORD windows_error;
- if ((ret = WaitForSingleObject(tid, INFINITE)) != WAIT_OBJECT_0)
- /*
- * If we fail to wait, we will leak handles so do not continue
- */
- WT_PANIC_RET(session,
- ret == WAIT_FAILED ? __wt_getlasterror() : ret,
- "thread join: WaitForSingleObject");
+ if ((windows_error =
+ WaitForSingleObject(tid, INFINITE)) != WAIT_OBJECT_0) {
+ if (windows_error == WAIT_FAILED)
+ windows_error = __wt_getlasterror();
+ __wt_errx(session, "thread join: WaitForSingleObject: %s",
+ __wt_formatmessage(session, windows_error));
+
+ /* If we fail to wait, we will leak handles, do not continue. */
+ return (WT_PANIC);
+ }
if (CloseHandle(tid) == 0) {
- WT_RET_MSG(session,
- __wt_getlasterror(), "thread join: CloseHandle");
+ windows_error = __wt_getlasterror();
+ __wt_errx(session, "thread join: CloseHandle: %s",
+ __wt_formatmessage(session, windows_error));
+ return (__wt_map_windows_error(windows_error));
}
return (0);