X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fbackgroundsupr.h;h=d4daa3ed314095f307e1d18e2488c9e91fde67d6;hb=9ff5b5165b2c8871bd4b29ccd5ca794638414615;hp=ada1550f8c4e6ca85d314c75907ca2de55b4815a;hpb=d77c9d135405e077047ef3426a54470c144cdd34;p=ctsim.git diff --git a/src/backgroundsupr.h b/src/backgroundsupr.h index ada1550..d4daa3e 100644 --- a/src/backgroundsupr.h +++ b/src/backgroundsupr.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2001 Kevin Rosenberg ** -** $Id: backgroundsupr.h,v 1.9 2001/03/05 17:26:46 kevin Exp $ +** $Id: backgroundsupr.h,v 1.11 2001/03/09 21:31:51 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 @@ -46,15 +46,14 @@ public: }; -// Pure virtual class for BackgroundSupervisor that can communication -// with BackgroundManager via messages +// Pure virtual class for BackgroundSupervisor that can communication with BackgroundManager via messages class BackgroundWorkerThread; class BackgroundProcessingDocument; class BackgroundSupervisor : public wxEvtHandler { private: DECLARE_DYNAMIC_CLASS(BackgroundSupervisor) - + SupervisorThread* m_pMyThread; wxFrame* m_pParentFrame; BackgroundProcessingDocument* m_pDocument; @@ -62,20 +61,20 @@ private: const unsigned int m_iTotalUnits; int m_iNumThreads; - bool m_bDone; + volatile bool m_bDone; volatile bool m_bFail; std::string m_strFailMessage; - bool m_bCancelled; + volatile bool m_bCancelled; volatile int m_iRunning; - unsigned int m_iUnitsDone; + volatile unsigned int m_iUnitsDone; Timer* m_pTimer; - bool m_bWorkersDeleted; + volatile bool m_bWorkersDeleted; + volatile bool m_bBackgroundManagerAdded; typedef std::vector ThreadContainer; ThreadContainer m_vecpThreads; wxCriticalSection m_critsectThreads; - public: enum { MSG_BACKGROUND_SUPERVISOR_ADD = 7500, // sends to BackgroundManager and Document @@ -111,6 +110,7 @@ public: virtual void onWorkerDone(int iThread); void deleteWorkers(); + void ackRemoveBackgroundManager(); bool workersDone() const { return m_iRunning == 0; } bool workersDeleted() const { return m_bWorkersDeleted; } bool isDone() const {return m_bDone;}