Kent, Mutable member are evil.
Would it be possible to have the m_Center and the m_FixedArray point to the same block of data? Brad On Oct 24, 2014, at 12:59 PM, Williams, Norman K <[email protected]> wrote: > The problem is worse than I thought. > > CompositeTransform::GetFixedParameters() dynamically resizes the > FixedParameters array, and then does a bunch of std::copy to copy fixed > parameters out of its list of sub-transforms. > > The only way to make that thread safe is to use a Mutex lock to guard where > it changes the member variable. > > From: <Williams>, Mushly McMushmaster <[email protected]> > Date: Friday, October 24, 2014 at 11:45 AM > To: ITK <[email protected]> > Subject: [ITK-dev] MatrixOffsetTransformBase::GetFixedParameters not > ThreadSafe -- regression test? > > I was going to address this bug that I just logged: > > https://issues.itk.org/jira/browse/ITK-3324 > > Basically, if GetFixedParameters is called from multiple threads, it > introduces a race to resize the internal fixed parameter array. > > This was never a problem before Hans Johnson’s recent patch to propagate > fixed parameters int Transform::GetInverse() methods. He added: > > inverse->SetFixedParameters(this->GetFixedParameters()); > > which makes perfect sense. > > I have a decent idea of how to make this better: Set the fixed parameters’ > size in the constructor for MatrixOffsetTransformBase, and set the fixed > parameters in SetCenter. I will review the other instances of > GetFixedParameters and GetParameters to see if they’re similarly > thread-unsafe. > > But how do you write a regression test for this? > > > > > Notice: This UI Health Care e-mail (including attachments) is covered by the > Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential > and may be legally privileged. If you are not the intended recipient, you > are hereby notified that any retention, dissemination, distribution, or > copying of this communication is strictly prohibited. Please reply to the > sender that you have received the message in error, then delete it. Thank > you. > > > Notice: This UI Health Care e-mail (including attachments) is covered by the > Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential > and may be legally privileged. If you are not the intended recipient, you > are hereby notified that any retention, dissemination, distribution, or > copying of this communication is strictly prohibited. Please reply to the > sender that you have received the message in error, then delete it. Thank > you. > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-developers
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers
