Logo Search packages:      
Sourcecode: djvulibre version File versions

void DjVuFile::stop ( bool  only_blocked  ) 

Recursively stops all data-related operations.

Depending on the value of only_blocked# flag this works as follows: {itemize} If only_blocked# is TRUE#, the function will make sure, that any further access to the file's data will result in a STOP# exception if the desired data is not available (and the thread would normally block). If only_blocked# is FALSE#, then { any} further access to the file's data will result in immediate STOP# exception. {itemize}

The action of this function is recursive, meaning that any DjVuFile# included into this one will also be stopped.

Use this function when you don't need the DjVuFile# anymore. The results cannot be undone, and the whole idea is to make all threads working with this file exit with the STOP# exception.

Definition at line 1448 of file DjVuFile.cpp.

Referenced by DjVuDocument::~DjVuDocument().

{
  DEBUG_MSG("DjVuFile::stop(): Stopping everything\n");
  DEBUG_MAKE_INDENT(3);
  
  flags|=only_blocked ? BLOCKED_STOPPED : STOPPED;
  if (data_pool) data_pool->stop(only_blocked);
  GCriticalSectionLock lock(&inc_files_lock);
  for(GPosition pos=inc_files_list;pos;++pos)
    inc_files_list[pos]->stop(only_blocked);
}


Generated by  Doxygen 1.6.0   Back to index