X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOMultiThreadImageReader.cpp;h=9d2c0908384742ad939640f2c4fc7ffa57af412e;hb=b0bee282f8a6c60d5d86495b9bdbc0b89309bf1f;hp=053f77e32e0d1a6f30815f0f47eee7d8c0951590;hpb=47344ac4f0a977d14c539921adc2de84808f3df0;p=creaImageIO.git diff --git a/src2/creaImageIOMultiThreadImageReader.cpp b/src2/creaImageIOMultiThreadImageReader.cpp index 053f77e..9d2c090 100644 --- a/src2/creaImageIOMultiThreadImageReader.cpp +++ b/src2/creaImageIOMultiThreadImageReader.cpp @@ -34,6 +34,7 @@ namespace creaImageIO private: ImageReader mReader; MultiThreadImageReader* mMultiThreadImageReader; + }; //===================================================================== @@ -43,7 +44,7 @@ namespace creaImageIO : //mDoNotSignal(false), mReader(0), mTotalMem(0), - mTotalMemMax(100000) + mTotalMemMax(1500000) { // std::cout << "#### MultiThreadImageReader::MultiThreadImageReader(" // << " #threads= " << number_of_threads <<" )"<Delete(); + if((*i)->IsAlive()) + { + (*i)->Delete(); + } } mThreadedImageReaderList.clear(); // Wait a little to be sure that all threads have stopped @@ -437,19 +441,34 @@ namespace creaImageIO ImageToLoadPtr unload = mUnloadQueue.remove_top(); MultiThreadImageReaderUser* user = unload->GetUser(); + /* if ((user!=0)&&(user!=this)) { user->GetMultiThreadImageReaderUserMutex().Lock(); } + */ + std::string filename = unload->GetFilename(); - GimmickMessage(5,"'" << unload->GetFilename() << "'" << std::endl); + GimmickMessage(5,"'" << filename << "'" << std::endl); mTotalMem -= unload->GetImage()->GetEstimatedMemorySize(); GimmickMessage(5," ==> Total mem = "<GetFilename(); + + if (user!=0) + { + // std::cout << "unlock..."<GetMultiThreadImageReaderUserMutex().Unlock(); + // std::cout << "event"<MultiThreadImageReaderSendEvent + (filename, + MultiThreadImageReaderUser::ImageUnloaded, + 0); + // std::cout << "event ok"<Index()>=0) { // GimmickMessage(5,"still in queue"<GetMultiThreadImageReaderUserMutex().Unlock(); - // std::cout << "event"<MultiThreadImageReaderSendEvent - (filename, - MultiThreadImageReaderUser::ImageUnloaded, - 0); - // std::cout << "event ok"<