r623: no message
[ctsim.git] / src / backgroundsupr.cpp
index 561009c8b97a368ae41aaf2eb3eeb79abab415f5..18dde621d4dc40c94643e3f33681d88a67d2ddf4 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2001 Kevin Rosenberg
 **
-**  $Id: backgroundsupr.cpp,v 1.13 2001/03/05 17:26:46 kevin Exp $
+**  $Id: backgroundsupr.cpp,v 1.17 2001/03/09 02:40:17 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -40,6 +40,8 @@
 
 #ifdef HAVE_WXTHREADS
 
+#define USE_BKGMGR 1
+
 ////////////////////////////////////////////////////////////////////////////
 //
 // Class BackgroundSupervisor -- An event handler run by a SupervisorThread
@@ -68,9 +70,11 @@ BackgroundSupervisor::BackgroundSupervisor (SupervisorThread* pMyThread, wxFrame
 
 BackgroundSupervisor::~BackgroundSupervisor()
 {
+#ifdef USE_BKGMGR
   wxCommandEvent doneEvent (wxEVT_COMMAND_MENU_SELECTED, MSG_BACKGROUND_SUPERVISOR_REMOVE);
   doneEvent.SetClientData (this);
   wxPostEvent (theApp->getBackgroundManager(), doneEvent);
+#endif
 
   m_pDocument->removeBackgroundSupervisor (this);
 
@@ -85,14 +89,12 @@ BackgroundSupervisor::deleteWorkers()
     return;
 
   for (int i = 0; i < m_iNumThreads; i++) 
-    if (m_vecpThreads[i]) {
-      m_vecpThreads[i]->Delete(); // sends Destroy message to workers
-  }
+    if (m_vecpThreads[i]) 
+      m_vecpThreads[i]->Delete(); // send Destroy message to workers
 
-  while (m_iRunning > 0) {
+  while (m_iRunning > 0) 
     m_pMyThread->Sleep(50);
-  }
-  m_iRunning = 0;
+  
   m_bWorkersDeleted = true;
 }
 
@@ -128,11 +130,14 @@ BackgroundSupervisor::start()
   std::string strLabel (m_strProcessTitle);
   strLabel += " ";
   strLabel += m_pParentFrame->GetTitle();
+
+#ifdef USE_BKGMGR
   wxCommandEvent addTaskEvent (wxEVT_COMMAND_MENU_SELECTED, MSG_BACKGROUND_SUPERVISOR_ADD);
   addTaskEvent.SetString (strLabel.c_str());
   addTaskEvent.SetInt (m_iTotalUnits);
   addTaskEvent.SetClientData (this);
   wxPostEvent (theApp->getBackgroundManager(), addTaskEvent);
+#endif
 
   m_pDocument->addBackgroundSupervisor (this);
   
@@ -158,15 +163,12 @@ BackgroundSupervisor::onWorkerUnitTick ()
 {
     ++m_iUnitsDone;
     
-#ifdef DEBUG
-    if (theApp->getVerboseLogging())
-      *theApp->getLog() << "Units done: " << static_cast<int>(m_iUnitsDone) <<"\n";
-#endif
-    
+#ifdef USE_BKGMGR
     wxCommandEvent addTaskEvent (wxEVT_COMMAND_MENU_SELECTED, MSG_BACKGROUND_SUPERVISOR_UNIT_TICK);
     addTaskEvent.SetInt (m_iUnitsDone - 1);
     addTaskEvent.SetClientData (this);
     wxPostEvent (theApp->getBackgroundManager(), addTaskEvent);
+#endif
 }
 
 void
@@ -176,7 +178,6 @@ BackgroundSupervisor::onWorkerDone (int iThread)
        critsectDone.Enter();
 
   m_iRunning--;
-  wxASSERT (m_iRunning >= 0);
 
 #ifdef DEBUG
   if (theApp->getVerboseLogging()) {