summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/Thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceUtil/Thread.cpp')
-rw-r--r--cpp/src/IceUtil/Thread.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/Thread.cpp b/cpp/src/IceUtil/Thread.cpp
index cab9cddfa95..4994079002a 100644
--- a/cpp/src/IceUtil/Thread.cpp
+++ b/cpp/src/IceUtil/Thread.cpp
@@ -89,6 +89,22 @@ IceUtil::ThreadControl::detach()
_detached = true;
}
}
+
+bool
+IceUtil::ThreadControl::isAlive() const
+{
+ if(!_handle->handle)
+ {
+ return false;
+ }
+
+ DWORD rc;
+ if(GetExitCodeThread(_handle->handle, &rc) == 0)
+ {
+ return false;
+ }
+ return rc == STILL_ACTIVE;
+}
void
IceUtil::ThreadControl::sleep(const Time& timeout)