Patchwatcher thread can't exit will cause crash when commitdlg exit
Signed-off-by: Frank Li <lznuaa@gmail.com>
void CCommitDlg::OnCancel()\r
{\r
m_bCancelled = true;\r
+ m_pathwatcher.Stop();\r
+\r
if (m_bBlock)\r
return;\r
- m_pathwatcher.Stop();\r
+ \r
if (m_bThreadRunning)\r
{\r
InterlockedExchange(&m_bRunThread, FALSE);\r
{\r
PostQueuedCompletionStatus(m_hCompPort, 0, NULL, NULL);\r
}\r
+ \r
if (m_hThread != INVALID_HANDLE_VALUE)\r
+ {\r
+ if( WaitForSingleObject(m_hThread, 1000) != WAIT_OBJECT_0 )\r
+ {\r
+ TerminateThread(m_hThread, (DWORD)-1);\r
+ }\r
CloseHandle(m_hThread);\r
-\r
+ }\r
m_hThread = INVALID_HANDLE_VALUE;\r
m_hCompPort = INVALID_HANDLE_VALUE;\r
}\r