From cb735fb8dfa3ebbe3457a0ccb6e157e42e59041f Mon Sep 17 00:00:00 2001
From: Janik Zikovsky <zikovskyjl@ornl.gov>
Date: Thu, 14 Jul 2011 17:48:11 +0000
Subject: [PATCH] Refs #3348: Thread-safe progress updates when rebinning in
 PV.

---
 .../ParaViewReaders/EventNexusReader/vtkEventNexusReader.cxx  | 2 ++
 .../ParaViewReaders/EventNexusReader/vtkEventNexusReader.h    | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.cxx b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.cxx
index 578f708aa2b..dd24b6ebecd 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.cxx
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.cxx
@@ -543,6 +543,8 @@ unsigned long vtkEventNexusReader::GetMTime()
 */
 void vtkEventNexusReader::UpdateAlgorithmProgress(double progress)
 {
+  progressMutex.lock();
   this->SetProgressText("Executing Mantid MDEvent Rebinning Algorithm...");
   this->UpdateProgress(progress);
+  progressMutex.unlock();
 }
diff --git a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.h b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.h
index 84623032f7b..237a0c9503c 100644
--- a/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.h
+++ b/Code/Mantid/Vates/ParaviewPlugins/ParaViewReaders/EventNexusReader/vtkEventNexusReader.h
@@ -6,6 +6,7 @@
 #include "MantidVatesAPI/EscalatingRebinningActionManager.h"
 #include "MantidGeometry/MDGeometry/MDGeometryXMLBuilder.h"
 #include "MantidVatesAPI/ThresholdRange.h"
+#include "MantidKernel/MultiThreaded.h"
 
 class vtkImplicitFunction;
 class VTK_EXPORT vtkEventNexusReader : public vtkUnstructuredGridAlgorithm
@@ -156,5 +157,8 @@ private:
   int m_thresholdMethodIndex;
 
   Mantid::VATES::ThresholdRange_scptr m_ThresholdRange;
+
+  /// Mutex for thread-safe progress reporting.
+  Mantid::Kernel::Mutex progressMutex;
 };
 #endif
-- 
GitLab