Przeglądaj źródła

Wait for last import job to be finished before starting a new one

closes #196
Marco Nolden 12 lat temu
rodzic
commit
95e0852b54
1 zmienionych plików z 8 dodań i 0 usunięć
  1. 8 0
      Libs/DICOM/Core/ctkDICOMIndexer.cpp

+ 8 - 0
Libs/DICOM/Core/ctkDICOMIndexer.cpp

@@ -91,6 +91,9 @@ ctkDICOMIndexerPrivate::ctkDICOMIndexerPrivate(ctkDICOMIndexer& o) : q_ptr(&o),
 //------------------------------------------------------------------------------
 ctkDICOMIndexerPrivate::~ctkDICOMIndexerPrivate()
 {
+  DirectoryImportWatcher.cancel();
+  DirectoryImportWatcher.waitForFinished();
+
 }
 
 void ctkDICOMIndexerPrivate::OnProgress(int progress)
@@ -145,6 +148,11 @@ void ctkDICOMIndexer::addDirectory(ctkDICOMDatabase& ctkDICOMDatabase,
 {
   Q_D(ctkDICOMIndexer);
 
+  // currently it is not supported to have multiple
+  // parallel directory imports so the second call blocks
+  //
+  d->DirectoryImportWatcher.waitForFinished();
+
   const std::string src_directory(directoryName.toStdString());
 
   OFList<OFString> originalDcmtkFileNames;