X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fbackgroundsupr.cpp;h=3b2f36245f154f46802f3883da355b809ca4f378;hb=c358b8c8b5649f14e2b8203b999ba8549a244727;hp=4083c8220f8647253b19f44aa124c2bd8eae9bb3;hpb=a97f1819c4f24321ba8d54a16f6534ee94404d26;p=ctsim.git diff --git a/src/backgroundsupr.cpp b/src/backgroundsupr.cpp index 4083c82..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.7 2001/02/25 19:24:01 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,14 +67,14 @@ 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() { m_iNumThreads = theApp->getNumberCPU(); -// ++m_iNumThreads; + ++m_iNumThreads; m_vecpThreads.reserve (m_iNumThreads); for (int iThread = 0; iThread < m_iNumThreads; iThread++) @@ -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;