Skip to content

Commit

Permalink
Re #5729. Add critical section around filling of static variable.
Browse files Browse the repository at this point in the history
Need for this highlighted by performance test failure (GetDetOffsetsMultiPeaksTestPerformance).
  • Loading branch information
RussellTaylor committed Nov 26, 2012
1 parent 0b1bb6d commit f45a433
Showing 1 changed file with 24 additions and 18 deletions.
42 changes: 24 additions & 18 deletions Code/Mantid/Framework/DataObjects/src/PeakColumn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,30 @@ namespace DataObjects
static std::map<std::string, std::string> index;
if(index.empty())
{
// Assume double if not in this map
index.insert(std::make_pair("DetID", "int"));
index.insert(std::make_pair("RunNumber", "int"));
index.insert(std::make_pair("h", "double"));
index.insert(std::make_pair("k", "double"));
index.insert(std::make_pair("l", "double"));
index.insert(std::make_pair("Wavelength", "double"));
index.insert(std::make_pair("Energy", "double"));
index.insert(std::make_pair("TOF", "double"));
index.insert(std::make_pair("DSpacing", "double"));
index.insert(std::make_pair("Intens", "double"));
index.insert(std::make_pair("SigInt", "double"));
index.insert(std::make_pair("BinCount", "double"));
index.insert(std::make_pair("BankName", "str"));
index.insert(std::make_pair("Row", "double"));
index.insert(std::make_pair("Col", "double"));
index.insert(std::make_pair("QLab", "V3D"));
index.insert(std::make_pair("QSample", "V3D"));
PARALLEL_CRITICAL(fill_column_index_map)
{
if (index.empty()) // check again inside the critical block
{
// Assume double if not in this map
index.insert(std::make_pair("DetID", "int"));
index.insert(std::make_pair("RunNumber", "int"));
index.insert(std::make_pair("h", "double"));
index.insert(std::make_pair("k", "double"));
index.insert(std::make_pair("l", "double"));
index.insert(std::make_pair("Wavelength", "double"));
index.insert(std::make_pair("Energy", "double"));
index.insert(std::make_pair("TOF", "double"));
index.insert(std::make_pair("DSpacing", "double"));
index.insert(std::make_pair("Intens", "double"));
index.insert(std::make_pair("SigInt", "double"));
index.insert(std::make_pair("BinCount", "double"));
index.insert(std::make_pair("BankName", "str"));
index.insert(std::make_pair("Row", "double"));
index.insert(std::make_pair("Col", "double"));
index.insert(std::make_pair("QLab", "V3D"));
index.insert(std::make_pair("QSample", "V3D"));
}
}
}
auto iter = index.find(name);
if(iter != index.end())
Expand Down

0 comments on commit f45a433

Please sign in to comment.