XMLObjectCache::~XMLObjectCache() { try { // Note: You can remove the following 6 lines of code if you have you have // a situation that leaves an invalid object reference in the cash. Free'ing this // memory is non-essential because the process is ending if we are executing this code. // Therefore, any memory access exceptions on those references can be safely ignored. dumpCache(); dumpStateCache(); dumpForeignCache(); delete m_cache; delete m_cacheState; delete m_cacheForeign; } catch (...) { // continue normal processing after the first chance exception of an Access Violation } delete m_cacheForeignAlternate; delete m_cacheData; m_cache = 0; m_cacheState = 0; m_cacheForeign = 0; // gthread_mutex_destroy(&m_cs); XML_DESTROY_MUTEX(&m_cs); gthread_mutex_destroy(&m_csState); gthread_mutex_destroy(&m_csForeign); gthread_mutex_destroy(&m_csData); #ifdef _WIN32 _gthread_processTerminate(); #endif }
~InterfaceController() { gthread_mutex_destroy(&m_condLock); gthread_mutex_destroy(&m_lock); gthread_cond_destroy(&m_cond); }
~CLanguageDriverInterfaceCache() { gthread_mutex_destroy(&m_lock); }