Fixed exit problem.
authorThomas Lopatic <thomas@lopatic.de>
Wed, 30 Mar 2005 21:29:05 +0000 (21:29 +0000)
committerThomas Lopatic <thomas@lopatic.de>
Wed, 30 Mar 2005 21:29:05 +0000 (21:29 +0000)
gui/win32/Main/FrontendDlg.cpp

index cf91f78..42fd9c7 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact\r
  * the copyright holders.\r
  *\r
- * $Id: FrontendDlg.cpp,v 1.9 2005/01/17 11:52:36 tlopatic Exp $\r
+ * $Id: FrontendDlg.cpp,v 1.10 2005/03/30 21:29:05 tlopatic Exp $\r
  */\r
 \r
 #include "stdafx.h"\r
@@ -59,6 +59,9 @@ CFrontendDlg::CFrontendDlg(CWnd* pParent)
        //}}AFX_DATA_INIT\r
 \r
        Event = CreateEvent(NULL, FALSE, FALSE, "TheOlsrdShimEvent");\r
+\r
+       LogThread = NULL;\r
+       NetThread = NULL;\r
 }\r
 \r
 void CFrontendDlg::DoDataExchange(CDataExchange* pDX)\r
@@ -849,6 +852,8 @@ int CFrontendDlg::StartOlsrd()
                ::SetEvent(Event);\r
                ::WaitForSingleObject((HANDLE)LogThread, INFINITE);\r
 \r
+               LogThread = NULL;\r
+\r
                return -1;\r
        }\r
 \r
@@ -870,6 +875,8 @@ int CFrontendDlg::StartOlsrd()
 \r
                ::closesocket(SockHand);\r
 \r
+               LogThread = NULL;\r
+\r
                return -1;\r
        }\r
 \r
@@ -880,6 +887,9 @@ int CFrontendDlg::StartOlsrd()
 \r
 int CFrontendDlg::StopOlsrd()\r
 {\r
+       if (LogThread == NULL && NetThread == NULL)\r
+               return 0;\r
+\r
        TrayIcon::getInstance()->setStatus( TrayIcon::OFF, "Off" );\r
 \r
        ::SetEvent(Event);\r
@@ -887,6 +897,9 @@ int CFrontendDlg::StopOlsrd()
        ::WaitForSingleObject((HANDLE)LogThread, INFINITE);\r
        ::WaitForSingleObject((HANDLE)NetThread, INFINITE);\r
 \r
+       LogThread = NULL;\r
+       NetThread = NULL;\r
+\r
        ::DeleteFile(StoredTempFile);\r
 \r
        return 0;\r