mirror of https://gitee.com/bigwinds/arangodb
removed obsolete patches
This commit is contained in:
parent
4f972e2652
commit
30edc20681
File diff suppressed because it is too large
Load Diff
|
@ -1,154 +0,0 @@
|
||||||
diff --git a/arangod/VocBase/compactor.c b/arangod/VocBase/compactor.c
|
|
||||||
index 2809b17..19a81e0 100644
|
|
||||||
--- a/arangod/VocBase/compactor.c
|
|
||||||
+++ b/arangod/VocBase/compactor.c
|
|
||||||
@@ -404,11 +404,13 @@ static void CompactifySimCollection (TRI_sim_collection_t* sim) {
|
|
||||||
size_t n;
|
|
||||||
size_t i;
|
|
||||||
|
|
||||||
+ if (! TRI_TRY_READ_LOCK_DATAFILES_SIM_COLLECTION(sim)) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
TRI_InitVector(&vector, TRI_UNKNOWN_MEM_ZONE, sizeof(TRI_doc_datafile_info_t));
|
|
||||||
|
|
||||||
// copy datafile information
|
|
||||||
- TRI_READ_LOCK_DATAFILES_SIM_COLLECTION(sim);
|
|
||||||
-
|
|
||||||
n = sim->base.base._datafiles._length;
|
|
||||||
|
|
||||||
for (i = 0; i < n; ++i) {
|
|
||||||
diff --git a/arangod/VocBase/simple-collection.h b/arangod/VocBase/simple-collection.h
|
|
||||||
index 1a8c2e7..73132b5 100644
|
|
||||||
--- a/arangod/VocBase/simple-collection.h
|
|
||||||
+++ b/arangod/VocBase/simple-collection.h
|
|
||||||
@@ -53,6 +53,13 @@ extern "C" {
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+/// @brief tries to read lock the journal files and the parameter file
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+
|
|
||||||
+#define TRI_TRY_READ_LOCK_DATAFILES_SIM_COLLECTION(a) \
|
|
||||||
+ TRI_TryReadLockReadWriteLock(&(a)->_lock)
|
|
||||||
+
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// @brief read locks the journal files and the parameter file
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
diff --git a/arangod/VocBase/synchroniser.c b/arangod/VocBase/synchroniser.c
|
|
||||||
index fb0e496..cb5eb91 100644
|
|
||||||
--- a/arangod/VocBase/synchroniser.c
|
|
||||||
+++ b/arangod/VocBase/synchroniser.c
|
|
||||||
@@ -138,7 +138,7 @@ static bool CheckJournalSimCollection (TRI_sim_collection_t* sim) {
|
|
||||||
bool worked;
|
|
||||||
size_t i;
|
|
||||||
size_t n;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
worked = false;
|
|
||||||
base = &sim->base.base;
|
|
||||||
|
|
||||||
@@ -205,7 +205,7 @@ static bool CheckSyncCompactorSimCollection (TRI_sim_collection_t* sim) {
|
|
||||||
double ti;
|
|
||||||
size_t i;
|
|
||||||
size_t n;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
worked = false;
|
|
||||||
base = &sim->base.base;
|
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@ static bool CheckCompactorSimCollection (TRI_sim_collection_t* sim) {
|
|
||||||
bool worked;
|
|
||||||
size_t i;
|
|
||||||
size_t n;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
worked = false;
|
|
||||||
base = &sim->base.base;
|
|
||||||
|
|
||||||
@@ -365,8 +365,10 @@ void TRI_SynchroniserVocBase (void* data) {
|
|
||||||
bool result;
|
|
||||||
|
|
||||||
collection = collections._buffer[i];
|
|
||||||
-
|
|
||||||
- TRI_READ_LOCK_STATUS_VOCBASE_COL(collection);
|
|
||||||
+
|
|
||||||
+ if (! TRI_TRY_READ_LOCK_DATAFILES_SIM_COLLECTION(collection)) {
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (collection->_status != TRI_VOC_COL_STATUS_LOADED) {
|
|
||||||
TRI_READ_UNLOCK_STATUS_VOCBASE_COL(collection);
|
|
||||||
diff --git a/lib/BasicsC/locks-posix.c b/lib/BasicsC/locks-posix.c
|
|
||||||
index 6ea05f9..150d727 100644
|
|
||||||
--- a/lib/BasicsC/locks-posix.c
|
|
||||||
+++ b/lib/BasicsC/locks-posix.c
|
|
||||||
@@ -230,6 +230,18 @@ void TRI_DestroyReadWriteLock (TRI_read_write_lock_t* lock) {
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+/// @brief tries to read lock read-write lock
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+
|
|
||||||
+bool TRI_TryReadLockReadWriteLock (TRI_read_write_lock_t* lock) {
|
|
||||||
+ int rc;
|
|
||||||
+
|
|
||||||
+ rc = pthread_rwlock_tryrdlock(lock);
|
|
||||||
+
|
|
||||||
+ return (rc == 0);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// @brief read locks read-write lock
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
diff --git a/lib/BasicsC/locks-win32.c b/lib/BasicsC/locks-win32.c
|
|
||||||
index 73b0a4b..72b720b 100644
|
|
||||||
--- a/lib/BasicsC/locks-win32.c
|
|
||||||
+++ b/lib/BasicsC/locks-win32.c
|
|
||||||
@@ -267,6 +267,27 @@ static void DecrementReaders (TRI_read_write_lock_t* lock) {
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+/// @brief tries to read lock a read-write lock
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+
|
|
||||||
+bool TRI_TryReadLockReadWriteLock (TRI_read_write_lock_t* lock) {
|
|
||||||
+ WaitForSingleObject(lock->_writerEvent, 10); // 10 millis timeout
|
|
||||||
+
|
|
||||||
+ EnterCriticalSection(&lock->_lockReaders);
|
|
||||||
+ IncrementReaders(lock);
|
|
||||||
+ LeaveCriticalSection(&lock->_lockReaders);
|
|
||||||
+
|
|
||||||
+ if (WaitForSingleObject(lock->_writerEvent, 0) != WAIT_OBJECT_0) {
|
|
||||||
+ EnterCriticalSection(&lock->_lockReaders);
|
|
||||||
+ DecrementReaders(lock);
|
|
||||||
+ LeaveCriticalSection(&lock->_lockReaders);
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// @brief read locks read-write lock
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
diff --git a/lib/BasicsC/locks.h b/lib/BasicsC/locks.h
|
|
||||||
index 5b37860..2146416 100644
|
|
||||||
--- a/lib/BasicsC/locks.h
|
|
||||||
+++ b/lib/BasicsC/locks.h
|
|
||||||
@@ -229,6 +229,12 @@ void TRI_DestroyReadWriteLock (TRI_read_write_lock_t* lock);
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+/// @brief tries to read lock read-write lock
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
+
|
|
||||||
+bool TRI_TryReadLockReadWriteLock (TRI_read_write_lock_t* lock);
|
|
||||||
+
|
|
||||||
+////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// @brief read locks read-write lock
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
Loading…
Reference in New Issue