X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOMultiThreadImageReader.cpp;h=7dae59112f77e1726d0ead210863a8936f6a403a;hb=415955d46ea550c344aa4d2215b8a790e348eb72;hp=3f4ba3ab6413f38c722ab51e41fe848cad3141e3;hpb=96ca5a0d7b7ccd6b4291160c19afd48e3207db2a;p=creaImageIO.git diff --git a/src2/creaImageIOMultiThreadImageReader.cpp b/src2/creaImageIOMultiThreadImageReader.cpp index 3f4ba3a..7dae591 100644 --- a/src2/creaImageIOMultiThreadImageReader.cpp +++ b/src2/creaImageIOMultiThreadImageReader.cpp @@ -3,6 +3,7 @@ #include #include + namespace creaImageIO { @@ -31,12 +32,23 @@ namespace creaImageIO vtkImageData* Read(const std::string& filename); + struct deleter + { + void operator()(ThreadedImageReader* p) + { + p->Delete(); + } + }; + friend struct deleter; + private: ImageReader mReader; MultiThreadImageReader* mMultiThreadImageReader; }; + + //===================================================================== @@ -53,7 +65,8 @@ namespace creaImageIO // Create the threads for (int i=0; i t(new ThreadedImageReader(this), ThreadedImageReader::deleter()); mThreadedImageReaderList.push_back(t); std::cout << " ===> Thread "<IsAlive()) { - (*i)->Delete(); + //(*i)->Delete(); } } - mThreadedImageReaderList.clear(); + // mThreadedImageReaderList.clear(); // Wait a little to be sure that all threads have stopped // A better way to do this ? // wxMilliSleep(1000); @@ -169,6 +182,7 @@ namespace creaImageIO // <