projects
/
ctsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r624: no message
[ctsim.git]
/
src
/
threadproj.cpp
diff --git
a/src/threadproj.cpp
b/src/threadproj.cpp
index b2d169f11ef77c5964f772fb801879a6d6e0d1f1..f967269df76a1a7b23fe64e64737569247c4ec55 100644
(file)
--- a/
src/threadproj.cpp
+++ b/
src/threadproj.cpp
@@
-9,7
+9,7
@@
** This is part of the CTSim program
** Copyright (C) 1983-2001 Kevin Rosenberg
**
** This is part of the CTSim program
** Copyright (C) 1983-2001 Kevin Rosenberg
**
-** $Id: threadproj.cpp,v 1.1
2 2001/03/04 04:30:45
kevin Exp $
+** $Id: threadproj.cpp,v 1.1
5 2001/03/07 21:18:50
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
**
** 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
@@
-70,9
+70,8
@@
ProjectorSupervisorThread::Entry()
m_strGeometry.c_str(), m_iNSample, m_dRotation, m_dFocalLength, m_dCenterDetectorLength, m_dViewRatio, m_dScanRatio, m_strLabel.c_str());
projSupervisor.start();
m_strGeometry.c_str(), m_iNSample, m_dRotation, m_dFocalLength, m_dCenterDetectorLength, m_dViewRatio, m_dScanRatio, m_strLabel.c_str());
projSupervisor.start();
- while (! projSupervisor.
isDone() && ! projSupervisor.fail
()) {
+ while (! projSupervisor.
workersDone() && ! projSupervisor.fail() && ! projSupervisor.cancelled
()) {
Sleep(100);
Sleep(100);
- Yield();
}
if (projSupervisor.fail())
{
}
if (projSupervisor.fail())
{
@@
-84,12
+83,11
@@
ProjectorSupervisorThread::Entry()
wxPostEvent( theApp->getMainFrame(), eventLog ); // send log event
}
wxPostEvent( theApp->getMainFrame(), eventLog ); // send log event
}
- while (! projSupervisor.workersDeleted()) {
- Sleep(50);
- projSupervisor.ProcessPendingEvents();
- }
+ if (! projSupervisor.cancelled())
+ projSupervisor.onDone();
+ projSupervisor.deleteWorkers();
- return
reinterpret
_cast<wxThread::ExitCode>(0);
+ return
static
_cast<wxThread::ExitCode>(0);
}
void
}
void
@@
-220,12
+218,12
@@
ProjectorWorker::Entry ()
{
const Phantom& rPhantom = m_pPhantomView->GetDocument()->getPhantom();
bool bFail = m_pScanner->fail();
{
const Phantom& rPhantom = m_pPhantomView->GetDocument()->getPhantom();
bool bFail = m_pScanner->fail();
-
wxS
tring failMsg;
+
std::s
tring failMsg;
if (bFail) {
failMsg = "Unable to make Projector: ";
failMsg += m_pScanner->failMessage().c_str();
wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, MAINMENU_LOG_EVENT );
if (bFail) {
failMsg = "Unable to make Projector: ";
failMsg += m_pScanner->failMessage().c_str();
wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, MAINMENU_LOG_EVENT );
- event.SetString( failMsg );
+ event.SetString( failMsg
.c_str()
);
wxPostEvent( theApp->getMainFrame(), event );
}
else
wxPostEvent( theApp->getMainFrame(), event );
}
else
@@
-245,19
+243,14
@@
ProjectorWorker::Entry ()
break;
}
m_pScanner->collectProjections (*m_pProjections, rPhantom, iUnit + m_iStartUnit, 1, iUnit, Trace::TRACE_NONE);
break;
}
m_pScanner->collectProjections (*m_pProjections, rPhantom, iUnit + m_iStartUnit, 1, iUnit, Trace::TRACE_NONE);
-
wxPostEvent (m_pSupervisor, eventProgress
);
+
m_pSupervisor->onWorkerUnitTick(
);
}
}
if (bFail) {
}
}
if (bFail) {
- wxCommandEvent eventFail (wxEVT_COMMAND_MENU_SELECTED, BackgroundSupervisor::MSG_WORKER_THREAD_FAIL);
- eventFail.SetInt (m_iThread); // Send back thread# that has finished
- eventFail.SetString (failMsg);
- wxPostEvent (m_pSupervisor, eventFail);
+ m_pSupervisor->onWorkerFail (m_iThread, failMsg);
} else {
} else {
- wxCommandEvent eventDone (wxEVT_COMMAND_MENU_SELECTED, BackgroundSupervisor::MSG_WORKER_THREAD_DONE);
- eventDone.SetInt (m_iThread); // Send back thread# that has finished
- wxPostEvent (m_pSupervisor, eventDone);
+ m_pSupervisor->onWorkerDone (m_iThread);
}
while (! TestDestroy())
}
while (! TestDestroy())