X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fbackgroundsupr.cpp;h=3b2f36245f154f46802f3883da355b809ca4f378;hp=0a09ef8614cec93ac83c1b9c14ba75b40a4bac35;hb=432ba2c487a5320352f14bdd2cce008fccef6902;hpb=cb0608392968d4509c0fbcf9b029ac5e5923e171 diff --git a/src/backgroundsupr.cpp b/src/backgroundsupr.cpp index 0a09ef8..3b2f362 100644 --- a/src/backgroundsupr.cpp +++ b/src/backgroundsupr.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2001 Kevin Rosenberg ** -** $Id: backgroundsupr.cpp,v 1.5 2001/02/25 15:27:28 kevin Exp $ +** $Id: backgroundsupr.cpp,v 1.9 2001/02/27 03:59:30 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 @@ -67,8 +67,8 @@ BackgroundSupervisor::cancelSupervisor (BackgroundSupervisor* pSupervisor) } -BackgroundSupervisor::BackgroundSupervisor (wxFrame* pParentFrame, wxDocument* pDocument, const char* const pszProcessTitle, int iTotalUnits) - : m_pParentFrame(pParentFrame), m_pDocument(pDocument), m_pDialogProgress(NULL), m_strProcessTitle(pszProcessTitle), +BackgroundSupervisor::BackgroundSupervisor (SupervisorThread* pMyThread, wxFrame* pParentFrame, wxDocument* pDocument, const char* const pszProcessTitle, int iTotalUnits) + : m_pMyThread(pMyThread), m_pParentFrame(pParentFrame), m_pDocument(pDocument), m_pDialogProgress(NULL), m_strProcessTitle(pszProcessTitle), m_iTotalUnits(iTotalUnits), m_iNumThreads(0), m_bDone(false), m_bFail(false), m_bCancelled(false), m_pTimer(NULL), m_bBackgroundTaskAdded(false), m_bWorkersDeleted(false), wxEvtHandler() @@ -92,7 +92,7 @@ BackgroundSupervisor::~BackgroundSupervisor() } while (m_bBackgroundTaskAdded) { - Sleep(50); + m_pMyThread->Sleep(50); ProcessPendingEvents(); } @@ -113,7 +113,7 @@ BackgroundSupervisor::deleteWorkers() } while (m_iRunning > 0) { - Sleep(50); + m_pMyThread->Sleep(50); ProcessPendingEvents(); } m_iRunning = 0; @@ -125,8 +125,8 @@ BackgroundSupervisor::start() { int iBaseUnits = m_iTotalUnits / m_iNumThreads; int iExtraUnits = m_iTotalUnits % m_iNumThreads; + int iStartUnit = 0; for (int iThread = 0; iThread < m_iNumThreads; iThread++) { - int iStartUnit = iThread * iBaseUnits; int iNumUnits = iBaseUnits; if (iThread < iExtraUnits) ++iNumUnits; @@ -141,7 +141,8 @@ BackgroundSupervisor::start() m_strFailMessage = "Thread creation failed [BackgroundSupervisor]"; break; } - m_vecpThreads[iThread]->SetPriority (40); + m_vecpThreads[iThread]->SetPriority (40); + iStartUnit += iNumUnits; } if (m_bFail) return false;