]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOMultiThreadImageReader.cpp
BUG Threads MacOs
[creaImageIO.git] / src2 / creaImageIOMultiThreadImageReader.cpp
index 717b09cb89699f7adf87afb3f5be9f79e1719d72..053f77e32e0d1a6f30815f0f47eee7d8c0951590 100644 (file)
@@ -60,10 +60,10 @@ namespace creaImageIO
     mQueue.set(mIndexer);
     // 
     // no thread : alloc self reader
-    if (number_of_threads==0)
-      {
+//    if (number_of_threads==0)
+//      {
        mReader = new ImageReader();
-      }
+//      }
   }
   //=====================================================================
 
@@ -74,6 +74,8 @@ namespace creaImageIO
 
     //    std::cout << "#### MultiThreadImageReader::Start()"
     //               <<std::endl;
+         if (mNumberOfThreadedReadersRunning > 0) return true;
+         
     ThreadedImageReaderListType::iterator i;
     for (i =mThreadedImageReaderList.begin();
         i!=mThreadedImageReaderList.end();
@@ -187,9 +189,10 @@ namespace creaImageIO
                                        const std::string& filename, 
                                        int priority )
   {
-    wxMutexLocker lock(GetMultiThreadImageReaderUserMutex()); //mMutex);
+       wxMutexLocker lock(GetMultiThreadImageReaderUserMutex()); //mMutex);
     
-    if (mThreadedImageReaderList.size()==0) 
+         if (mNumberOfThreadedReadersRunning==0)
+//    if (mThreadedImageReaderList.size()==0) 
       {
        // no detached reader : use self reader
        ImageToLoad itl(user,filename);
@@ -281,7 +284,7 @@ namespace creaImageIO
   //=====================================================================
   vtkImageData* MultiThreadImageReader::GetImage(const std::string& filename)
   {
-    
+        // Start();
     //    std::cout << "** MultiThreadImageReader::GetImage('"<<filename<<"')"
     //       <<std::endl;
     
@@ -289,7 +292,8 @@ namespace creaImageIO
       {
        wxMutexLocker lock(GetMultiThreadImageReaderUserMutex()); //mMutex);
                
-       if (mThreadedImageReaderList.size()==0)
+                 if (mNumberOfThreadedReadersRunning==0)
+//     if (mThreadedImageReaderList.size()==0)
          {
            ImageToLoad itl(this,filename);
            ImageMapType::iterator i = mImages.find(&itl);