Logo Search packages:      
Sourcecode: djvulibre version File versions

void DjVuDocument::stop_init ( void   ) 

Call this function when you don't need the DjVuDocument# any more. In a multi-threaded environment it will stop initialization thread, if it is currently running. { You will not be able to start the initialization again. Thus, after calling this function the document should not be used any more}.

Definition at line 245 of file DjVuDocument.cpp.

References GMonitor::wait().

{
   DEBUG_MSG("DjVuDocument::stop_init(): making sure that the init thread dies.\n");
   DEBUG_MAKE_INDENT(3);

   GMonitorLock lock(&init_thread_flags);
   while((init_thread_flags & STARTED) &&
       !(init_thread_flags & FINISHED))
   {
      if (init_data_pool) init_data_pool->stop(true); // blocking operation

      if (ndir_file) ndir_file->stop(false);

      {
       GCriticalSectionLock lock(&ufiles_lock);
       for(GPosition pos=ufiles_list;pos;++pos)
          ufiles_list[pos]->file->stop(false);  // Disable any access to data
       ufiles_list.empty();
      }

      init_thread_flags.wait(50);
   }
}


Generated by  Doxygen 1.6.0   Back to index