From 541066cdc1962dfe23c4e237216dd344d9cd2dbb Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Fri, 16 Nov 2012 15:43:48 +0100 Subject: [PATCH] free global instances of collections at shutdown --- arangod/VocBase/transaction.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/arangod/VocBase/transaction.c b/arangod/VocBase/transaction.c index 6c1fe14e64..698cf8289f 100644 --- a/arangod/VocBase/transaction.c +++ b/arangod/VocBase/transaction.c @@ -392,13 +392,25 @@ TRI_transaction_context_t* TRI_CreateTransactionContext (TRI_vocbase_t* const vo //////////////////////////////////////////////////////////////////////////////// void TRI_FreeTransactionContext (TRI_transaction_context_t* const context) { + uint32_t i, n; + // destroy global transaction lists DestroyTransactionList(&context->_writeTransactions); DestroyTransactionList(&context->_readTransactions); - // destroy hashes + // destroy global instances of collections + n = context->_collections._nrAlloc; + for (i = 0; i < n; ++i) { + TRI_transaction_collection_global_t* globalInstance; + + globalInstance = (TRI_transaction_collection_global_t*) context->_collections._table[i]; + if (globalInstance != NULL) { + FreeCollectionGlobalInstance(globalInstance); + } + } TRI_DestroyAssociativePointer(&context->_collections); + // destroy mutexts TRI_DestroyMutex(&context->_lock); TRI_DestroyMutex(&context->_collectionLock);