Moved mutex around smaller block
parent
5c406dc7c7
commit
c8cf14d4b9
|
@ -69,18 +69,13 @@ Unit3 Unit3::Random(boost::mt19937 & rng) {
|
|||
}
|
||||
|
||||
#ifdef GTSAM_USE_TBB
|
||||
tbb::mutex unit3BasisMutex;
|
||||
static tbb::mutex unit3BasisMutex;
|
||||
#endif
|
||||
|
||||
/* ************************************************************************* */
|
||||
const Matrix32& Unit3::basis() const {
|
||||
#ifdef GTSAM_USE_TBB
|
||||
tbb::mutex::scoped_lock lock(unit3BasisMutex);
|
||||
#endif
|
||||
|
||||
// Return cached version if exists
|
||||
if (B_)
|
||||
return *B_;
|
||||
if (B_) return *B_;
|
||||
|
||||
// Get the axis of rotation with the minimum projected length of the point
|
||||
Vector3 axis;
|
||||
|
@ -99,8 +94,13 @@ const Matrix32& Unit3::basis() const {
|
|||
Vector3 b2 = p_.cross(b1).normalized();
|
||||
|
||||
// Create the basis matrix
|
||||
{
|
||||
#ifdef GTSAM_USE_TBB
|
||||
tbb::mutex::scoped_lock lock(unit3BasisMutex);
|
||||
#endif
|
||||
B_.reset(Matrix32());
|
||||
(*B_) << b1, b2;
|
||||
}
|
||||
return *B_;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue