git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16980 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
 #include "wx/region.h"
 #include "wx/gdicmn.h"
 #include "wx/thread.h"
 #include "wx/region.h"
 #include "wx/gdicmn.h"
 #include "wx/thread.h"
 //                               wxRegionIterator                                 //
 ///////////////////////////////////////////////////////////////////////////////
 
 //                               wxRegionIterator                                 //
 ///////////////////////////////////////////////////////////////////////////////
 
+#if wxUSE_THREADS
+static wxMutex *gs_mutexIterator;
+
+class wxMglRegionModule : public wxModule
+{
+public:
+    virtual bool OnInit()
+    {
+        gs_mutexIterator = new wxMutex();
+        return TRUE;
+    }
+    virtual void OnExit()
+    {
+        wxDELETE(gs_mutexIterator);
+    }
+
+    DECLARE_DYNAMIC_CLASS(wxMglRegionModule)
+};
+IMPLEMENT_DYNAMIC_CLASS(wxMglRegionModule, wxModule)
+#endif
+
 /*
  * Initialize empty iterator
  */
 /*
  * Initialize empty iterator
  */
+#if wxUSE_THREADS
+        wxMutexLocker(*gs_mutexIterator);
+#endif
         gs_rectList = &m_rects;
         M_REGION_OF(region).traverse(wxMGL_region_callback);
         gs_rectList = &m_rects;
         M_REGION_OF(region).traverse(wxMGL_region_callback);
         m_currentNode = m_rects.GetFirst();
     }
 }
         m_currentNode = m_rects.GetFirst();
     }
 }