From 40cb0d6557e49ee42406fecdf8a2ea33c5709cfd Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Sat, 25 Oct 2014 11:54:55 +0200 Subject: [PATCH] Make cube loading thread save by putting an OpenMP critical directive around the call to load. --- src/model/GModelSpatialDiffuseCube.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/model/GModelSpatialDiffuseCube.cpp b/src/model/GModelSpatialDiffuseCube.cpp index 0e72a7f..3b78e8c 100644 --- a/src/model/GModelSpatialDiffuseCube.cpp +++ b/src/model/GModelSpatialDiffuseCube.cpp @@ -1033,13 +1033,16 @@ void GModelSpatialDiffuseCube::free_members(void) /***********************************************************************//** * @brief Fetch cube * - * Load diffuse cube if it is not yet loaded. + * Load diffuse cube if it is not yet loaded. The loading is thread save. ***************************************************************************/ void GModelSpatialDiffuseCube::fetch_cube(void) const { // Load cube if it is not yet loaded if (!m_loaded && !m_filename.empty()) { - const_cast(this)->load(m_filename); + #pragma omp critical + { + const_cast(this)->load(m_filename); + } } // Return -- libgit2 0.21.4