summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2020-11-25 11:28:01 +0600
committerliuxueli <[email protected]>2020-11-25 11:28:01 +0600
commite6a7f248638d6d8f70452eebb4270b98685f97f0 (patch)
tree9a2a2fb7961c726f4b1ecc743d89b1b6c1a4c3fa
parentb9779088b9f3f347f55b9e9b89c7364636ea4b1d (diff)
同时命中compile数量过多时,仅对MAX_GROUP_CACHE个数中间结果的进行排序,减少循环的次数v3.1.5
-rw-r--r--src/entry/Maat_hierarchy.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/entry/Maat_hierarchy.cpp b/src/entry/Maat_hierarchy.cpp
index 7e629e6..7cb33cc 100644
--- a/src/entry/Maat_hierarchy.cpp
+++ b/src/entry/Maat_hierarchy.cpp
@@ -1119,11 +1119,14 @@ void Maat_hierarchy_compile_mid_udpate(struct Maat_hierarchy_compile_mid* mid, i
}
else
{
- if(utarray_len(mid->_all_hit_clause_array)<MAX_GROUP_CACHE)
- {
- utarray_push_back(mid->_all_hit_clause_array, &clause_id);
- utarray_sort(mid->_all_hit_clause_array, compare_clause_id);
+ if(utarray_len(mid->_all_hit_clause_array)> MAX_GROUP_CACHE)
+ {
+ pthread_rwlock_unlock(&hier->rwlock);
+ return;
}
+ utarray_push_back(mid->_all_hit_clause_array, &clause_id);
+ utarray_sort(mid->_all_hit_clause_array, compare_clause_id);
+
}
}
}