From bf5a98bcc05fdfe320e2cb5e2d76cd2ccd1bbf10 Mon Sep 17 00:00:00 2001 From: Martin Fuchs Date: Thu, 2 Oct 2003 00:51:35 +0000 Subject: [PATCH] _avive-Handling svn path=/trunk/; revision=6209 --- reactos/subsys/system/explorer/explorer_intres.rc | 1 + reactos/subsys/system/explorer/utility/utility.cpp | 6 +++++- reactos/subsys/system/explorer/utility/utility.h | 7 +++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/reactos/subsys/system/explorer/explorer_intres.rc b/reactos/subsys/system/explorer/explorer_intres.rc index 34d53997a24..1d6906516ac 100644 --- a/reactos/subsys/system/explorer/explorer_intres.rc +++ b/reactos/subsys/system/explorer/explorer_intres.rc @@ -8,6 +8,7 @@ // Generated from the TEXTINCLUDE 2 resource. // #include +#include ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS diff --git a/reactos/subsys/system/explorer/utility/utility.cpp b/reactos/subsys/system/explorer/utility/utility.cpp index 5f6c1ffe8e7..cdfa761039a 100644 --- a/reactos/subsys/system/explorer/utility/utility.cpp +++ b/reactos/subsys/system/explorer/utility/utility.cpp @@ -36,7 +36,11 @@ DWORD WINAPI Thread::ThreadProc(void* para) { Thread* pThis = (Thread*) para; - return pThis->Run(); + int ret = pThis->Run(); + + pThis->_alive = false; + + return ret; } diff --git a/reactos/subsys/system/explorer/utility/utility.h b/reactos/subsys/system/explorer/utility/utility.h index 3c9a840bd4d..0f5fb459e90 100644 --- a/reactos/subsys/system/explorer/utility/utility.h +++ b/reactos/subsys/system/explorer/utility/utility.h @@ -169,7 +169,7 @@ protected: struct Thread { Thread() - : _alive(true) + : _alive(false) { _hThread = INVALID_HANDLE_VALUE; } @@ -183,7 +183,10 @@ struct Thread void Start() { - _hThread = CreateThread(NULL, 0, ThreadProc, this, 0, NULL); + if (!_alive) { + _alive = true; + _hThread = CreateThread(NULL, 0, ThreadProc, this, 0, NULL); + } } void Stop()