bug#at - testNdbApi WaitUntilReady, MaxNdb

fix delete of dictionary before connection has been established


ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  fix delete of dictionary before connection has been established
This commit is contained in:
unknown 2004-09-08 06:48:03 +02:00
parent 7fa2b4ef4e
commit d7773916ca

View file

@ -596,26 +596,32 @@ static int f_dictionary_count = 0;
NdbDictionaryImpl::~NdbDictionaryImpl()
{
NdbElement_t<NdbTableImpl> * curr = m_localHash.m_tableHash.getNext(0);
while(curr != 0){
m_globalHash->lock();
m_globalHash->release(curr->theData);
m_globalHash->unlock();
if(m_globalHash){
while(curr != 0){
m_globalHash->lock();
m_globalHash->release(curr->theData);
m_globalHash->unlock();
curr = m_localHash.m_tableHash.getNext(curr);
}
curr = m_localHash.m_tableHash.getNext(curr);
m_globalHash->lock();
if(--f_dictionary_count == 0){
delete NdbDictionary::Column::FRAGMENT;
delete NdbDictionary::Column::ROW_COUNT;
delete NdbDictionary::Column::COMMIT_COUNT;
NdbDictionary::Column::FRAGMENT= 0;
NdbDictionary::Column::ROW_COUNT= 0;
NdbDictionary::Column::COMMIT_COUNT= 0;
}
m_globalHash->unlock();
} else {
assert(curr == 0);
}
m_globalHash->lock();
if(--f_dictionary_count == 0){
delete NdbDictionary::Column::FRAGMENT;
delete NdbDictionary::Column::ROW_COUNT;
delete NdbDictionary::Column::COMMIT_COUNT;
NdbDictionary::Column::FRAGMENT= 0;
NdbDictionary::Column::ROW_COUNT= 0;
NdbDictionary::Column::COMMIT_COUNT= 0;
}
m_globalHash->unlock();
}
#if 0
bool
NdbDictionaryImpl::setTransporter(class TransporterFacade * tf)