mirror of https://gitee.com/bigwinds/arangodb
issue #662: ArangoDB on Windows hanging...
This commit is contained in:
parent
30e58362d7
commit
b131dc5a25
|
@ -6974,7 +6974,7 @@ static v8::Handle<v8::Value> JS_UnloadVocbaseCol (v8::Arguments const& argv) {
|
|||
TRI_V8_EXCEPTION_INTERNAL(scope, "cannot extract collection");
|
||||
}
|
||||
|
||||
int res = TRI_UnloadCollectionVocBase(collection->_vocbase, collection);
|
||||
int res = TRI_UnloadCollectionVocBase(collection->_vocbase, collection, false);
|
||||
|
||||
if (res != TRI_ERROR_NO_ERROR) {
|
||||
TRI_V8_EXCEPTION_MESSAGE(scope, res, "cannot unload collection");
|
||||
|
|
|
@ -1458,7 +1458,12 @@ void TRI_DestroyVocBase (TRI_vocbase_t* vocbase) {
|
|||
TRI_vector_pointer_t collections;
|
||||
int res;
|
||||
size_t i;
|
||||
|
||||
// stop replication
|
||||
TRI_StopReplicationApplier(vocbase->_replicationApplier, false);
|
||||
TRI_StopReplicationLogger(vocbase->_replicationLogger);
|
||||
|
||||
|
||||
TRI_InitVectorPointer(&collections, TRI_UNKNOWN_MEM_ZONE);
|
||||
|
||||
TRI_WRITE_LOCK_COLLECTIONS_VOCBASE(vocbase);
|
||||
|
@ -1473,15 +1478,11 @@ void TRI_DestroyVocBase (TRI_vocbase_t* vocbase) {
|
|||
TRI_vocbase_col_t* collection;
|
||||
|
||||
collection = (TRI_vocbase_col_t*) vocbase->_collections._buffer[i];
|
||||
TRI_UnloadCollectionVocBase(vocbase, collection);
|
||||
TRI_UnloadCollectionVocBase(vocbase, collection, true);
|
||||
}
|
||||
|
||||
TRI_DestroyVectorPointer(&collections);
|
||||
|
||||
// stop replication
|
||||
TRI_StopReplicationApplier(vocbase->_replicationApplier, false);
|
||||
TRI_StopReplicationLogger(vocbase->_replicationLogger);
|
||||
|
||||
// this will signal the synchroniser and the compactor threads to do one last iteration
|
||||
vocbase->_state = 2;
|
||||
|
||||
|
@ -1891,8 +1892,9 @@ TRI_vocbase_col_t* TRI_CreateCollectionVocBase (TRI_vocbase_t* vocbase,
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int TRI_UnloadCollectionVocBase (TRI_vocbase_t* vocbase,
|
||||
TRI_vocbase_col_t* collection) {
|
||||
if (! collection->_canUnload) {
|
||||
TRI_vocbase_col_t* collection,
|
||||
bool force) {
|
||||
if (! collection->_canUnload && ! force) {
|
||||
return TRI_set_errno(TRI_ERROR_FORBIDDEN);
|
||||
}
|
||||
|
||||
|
|
|
@ -534,7 +534,8 @@ TRI_vocbase_col_t* TRI_CreateCollectionVocBase (TRI_vocbase_t*,
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int TRI_UnloadCollectionVocBase (TRI_vocbase_t*,
|
||||
TRI_vocbase_col_t*);
|
||||
TRI_vocbase_col_t*,
|
||||
bool);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief drops a (document) collection
|
||||
|
|
Loading…
Reference in New Issue