[TD]prevent running threads on object delete
This commit is contained in:
committed by
WandererFan
parent
e97b95341a
commit
6f646a8d2d
@@ -109,6 +109,11 @@ DrawViewDetail::DrawViewDetail() :
|
||||
|
||||
DrawViewDetail::~DrawViewDetail()
|
||||
{
|
||||
//don't delete this object while it still has dependent tasks running
|
||||
if (m_detailFuture.isRunning()) {
|
||||
Base::Console().Message("%s is waiting for detail cut to finish\n", getNameInDocument());
|
||||
m_detailFuture.waitForFinished();
|
||||
}
|
||||
}
|
||||
|
||||
short DrawViewDetail::mustExecute() const
|
||||
|
||||
@@ -155,6 +155,15 @@ DrawViewPart::DrawViewPart(void) :
|
||||
|
||||
DrawViewPart::~DrawViewPart()
|
||||
{
|
||||
//don't delete this object while it still has dependent threads running
|
||||
if (m_hlrFuture.isRunning()) {
|
||||
Base::Console().Message("%s is waiting for HLR to finish\n", getNameInDocument());
|
||||
m_hlrFuture.waitForFinished();
|
||||
}
|
||||
if (m_faceFuture.isRunning()) {
|
||||
Base::Console().Message("%S is waiting for face finding to finish\n", getNameInDocument());
|
||||
m_faceFuture.waitForFinished();
|
||||
}
|
||||
removeAllReferencesFromGeom();
|
||||
delete geometryObject;
|
||||
}
|
||||
|
||||
@@ -149,6 +149,11 @@ DrawViewSection::DrawViewSection() :
|
||||
|
||||
DrawViewSection::~DrawViewSection()
|
||||
{
|
||||
//don't destroy this object while it has dependent threads running
|
||||
if (m_cutFuture.isRunning()) {
|
||||
Base::Console().Message("%s is waiting for tasks to complete\n", getNameInDocument());
|
||||
m_cutFuture.waitForFinished();
|
||||
}
|
||||
}
|
||||
|
||||
short DrawViewSection::mustExecute() const
|
||||
|
||||
Reference in New Issue
Block a user