summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/Thread.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/Thread.h')
-rw-r--r--cpp/include/IceUtil/Thread.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/cpp/include/IceUtil/Thread.h b/cpp/include/IceUtil/Thread.h
index 0d612ce6b07..0b34a35d3ee 100644
--- a/cpp/include/IceUtil/Thread.h
+++ b/cpp/include/IceUtil/Thread.h
@@ -20,9 +20,20 @@ namespace IceUtil
#ifdef WIN32
struct HandleWrapper : public Shared
{
- HandleWrapper(HANDLE);
-
- ~HandleWrapper();
+ // Inline for performance reasons.
+ HandleWrapper(HANDLE h) :
+ handle(h)
+ {
+ }
+
+ // Inline for performance reasons.
+ virtual ~HandleWrapper()
+ {
+ if (handle != 0)
+ {
+ CloseHandle(handle);
+ }
+ }
HANDLE handle;
};