diff options
| author | liuxueli <[email protected]> | 2020-11-25 11:28:01 +0600 |
|---|---|---|
| committer | liuxueli <[email protected]> | 2020-11-25 11:28:01 +0600 |
| commit | e6a7f248638d6d8f70452eebb4270b98685f97f0 (patch) | |
| tree | 9a2a2fb7961c726f4b1ecc743d89b1b6c1a4c3fa | |
| parent | b9779088b9f3f347f55b9e9b89c7364636ea4b1d (diff) | |
同时命中compile数量过多时,仅对MAX_GROUP_CACHE个数中间结果的进行排序,减少循环的次数v3.1.5
| -rw-r--r-- | src/entry/Maat_hierarchy.cpp | 11 |
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); + } } } |
