Skip to content

Commit dfc8b70

Browse files
lixy9474liutongxuan
authored andcommitted
[Embedding] Add double check in find_wait_free of lockless dense hashmap.
Signed-off-by: lixy9474 <lxy268263@alibaba-inc.com>
1 parent e71dec1 commit dfc8b70

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

third_party/sparsehash_c11.patch

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
From e40cddd160fbec51b3309bb56c72a3258bfe69b6 Mon Sep 17 00:00:00 2001
1+
From dcd5910ddff22b2896dc5221eab766a6c6d2307d Mon Sep 17 00:00:00 2001
22
From: Tongxuan Liu <tongxuan.ltx@alibaba-inc.com>
33
Date: Mon, 13 Mar 2023 08:58:56 +0800
4-
Subject: [PATCH] [PATCH] Avoid fetching nullptr when use feature filter.
4+
Subject: [PATCH] Avoid fetching nullptr when use feature filter.
55

66
---
77
Makefile | 13 +-
88
sparsehash/dense_hash_map_lockless | 447 ++++
9-
sparsehash/dense_hash_set_lockless | 381 ++++
9+
sparsehash/dense_hash_set_lockless | 381 +++
1010
sparsehash/internal/densehashtable.h | 16 +-
11-
sparsehash/internal/densehashtable_lockless.h | 2032 +++++++++++++++++
11+
sparsehash/internal/densehashtable_lockless.h | 2033 +++++++++++++++++
1212
sparsehash/internal/hashtable-common.h | 4 +
1313
sparsehash/internal/sparsehashtable.h | 18 +-
1414
sparsehash/traits | 10 +-
1515
tests/bench_lockless.cc | 1466 ++++++++++++
1616
tests/dense_hash_map_unittests.cc | 137 +-
1717
tests/rwlock.h | 224 ++
18-
11 files changed, 4725 insertions(+), 23 deletions(-)
18+
11 files changed, 4726 insertions(+), 23 deletions(-)
1919
create mode 100644 sparsehash/dense_hash_map_lockless
2020
create mode 100644 sparsehash/dense_hash_set_lockless
2121
create mode 100644 sparsehash/internal/densehashtable_lockless.h
@@ -958,10 +958,10 @@ index e254126..3bc3c16 100644
958958
for (; dist > 0; --dist, ++f) {
959959
diff --git a/sparsehash/internal/densehashtable_lockless.h b/sparsehash/internal/densehashtable_lockless.h
960960
new file mode 100644
961-
index 0000000..c13c628
961+
index 0000000..64f677f
962962
--- /dev/null
963963
+++ b/sparsehash/internal/densehashtable_lockless.h
964-
@@ -0,0 +1,2032 @@
964+
@@ -0,0 +1,2033 @@
965965
+// Copyright (c) 2005, Google Inc.
966966
+// All rights reserved.
967967
+//
@@ -2204,7 +2204,8 @@ index 0000000..c13c628
22042204
+ }else if(test_deleted(bucknum, tmp_pointer)) {
22052205
+ if(insert_pos == ILLEGAL_BUCKET) insert_pos = bucknum;
22062206
+ }else if (equals(key, get_key(tmp_pointer->table_[bucknum]))) {
2207-
+ std::pair<K, T> tmp(key, tmp_pointer->table_[bucknum].second);
2207+
+ std::pair<K, T> tmp(tmp_pointer->table_[bucknum].first,
2208+
+ tmp_pointer->table_[bucknum].second);
22082209
+ if(tmp.first == key){
22092210
+ return tmp;
22102211
+ }else{
@@ -4949,5 +4950,5 @@ index 0000000..25e8e93
49494950
+};
49504951
\ No newline at end of file
49514952
--
4952-
2.37.1
4953+
2.25.1
49534954

0 commit comments

Comments
 (0)