diff options
Diffstat (limited to 'cpp/src/IceUtil/Thread.cpp')
-rw-r--r-- | cpp/src/IceUtil/Thread.cpp | 16 |
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) |