projects
/
urcu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e0ba718
)
urcu-ht: fix steal stolen flag, only in first pass.
author
Mathieu Desnoyers
<mathieu.desnoyers@polymtl.ca>
Wed, 30 Sep 2009 14:08:29 +0000
(10:08 -0400)
committer
Mathieu Desnoyers
<mathieu.desnoyers@polymtl.ca>
Wed, 30 Sep 2009 14:08:29 +0000
(10:08 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
urcu-ht.c
patch
|
blob
|
blame
|
history
diff --git
a/urcu-ht.c
b/urcu-ht.c
index 500b8d36fff51dffaa3d2b8548b70f83be60518e..183fcb17d49a43da9eefddb3751ea0f4888bec8f 100644
(file)
--- a/
urcu-ht.c
+++ b/
urcu-ht.c
@@
-174,9
+174,14
@@
retry:
node = rcu_dereference(*prev);
}
- /* Another concurrent thread stole it ? If so, let it deal with this. */
- if (cmpxchg(&node->stolen, 0, 1) != 0)
- goto error;
+ if (!del_node) {
+ /*
+ * Another concurrent thread stole it ? If so, let it deal with
+ * this.
+ */
+ if (cmpxchg(&node->stolen, 0, 1) != 0)
+ goto error;
+ }
/* Found it ! pointer to object is in "prev" */
if (rcu_cmpxchg_pointer(prev, node, node->next) == node)
This page took
0.02595 seconds
and
4
git commands to generate.