diff options
Diffstat (limited to 'cpp/include')
-rw-r--r-- | cpp/include/IceUtil/Thread.h | 17 |
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; }; |