diff options
author | Michi Henning <michi@zeroc.com> | 2003-03-10 02:54:08 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2003-03-10 02:54:08 +0000 |
commit | 4be510ae7ab1c5a8542e73f06a4f5d5ccca8efd3 (patch) | |
tree | c10f8c70a540b70c5a3c3b1d45cd5e70b95e6c48 /cpp/src/IceUtil/Thread.cpp | |
parent | Added IceUtil::ThreadControl::isAlive() member function. (diff) | |
download | ice-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.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) |