summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/Thread.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2003-03-10 02:54:08 +0000
committerMichi Henning <michi@zeroc.com>2003-03-10 02:54:08 +0000
commit4be510ae7ab1c5a8542e73f06a4f5d5ccca8efd3 (patch)
treec10f8c70a540b70c5a3c3b1d45cd5e70b95e6c48 /cpp/src/IceUtil/Thread.cpp
parentAdded IceUtil::ThreadControl::isAlive() member function. (diff)
downloadice-4be510ae7ab1c5a8542e73f06a4f5d5ccca8efd3.tar.bz2
ice-4be510ae7ab1c5a8542e73f06a4f5d5ccca8efd3.tar.xz
ice-4be510ae7ab1c5a8542e73f06a4f5d5ccca8efd3.zip
Add ThreadControl::isAlive() functionality for Windows.
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)