diff options
Diffstat (limited to 'src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp')
-rw-r--r-- | src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp index 80ce6e61c..8de4144e4 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceControl.cpp @@ -1,4 +1,4 @@ -/* $Id: VBoxServiceControl.cpp 38157 2011-07-25 13:10:12Z vboxsync $ */ +/* $Id: VBoxServiceControl.cpp $ */ /** @file * VBoxServiceControl - Host-driven Guest Control. */ @@ -251,6 +251,7 @@ static DECLCALLBACK(void) VBoxServiceControlStop(void) } } + void VBoxServiceControlThreadSignalShutdown(const PVBOXSERVICECTRLTHREAD pThread) { AssertPtrReturnVoid(pThread); @@ -262,7 +263,8 @@ int VBoxServiceControlThreadWaitForShutdown(const PVBOXSERVICECTRLTHREAD pThread { AssertPtrReturn(pThread, VERR_INVALID_POINTER); int rc = VINF_SUCCESS; - if (pThread->Thread != NIL_RTTHREAD) + if ( pThread->Thread != NIL_RTTHREAD + && !pThread->fShutdown) /* Only shutdown threads which aren't yet. */ { /* Wait a bit ... */ rc = RTThreadWait(pThread->Thread, 30 * 1000 /* Wait 30 seconds max. */, NULL); |