X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=urcu-ht.c;h=04986188224939695750365cc3a4a18e398ec37e;hb=1a3d00b3d5595d2d3357b8e662f6cd12c6b48b5f;hp=8edfae331440abcae8f566015e56464d77fedb0b;hpb=ab7d5fc6ff3128b5699e1871e9726f4e79b8f2e6;p=urcu.git diff --git a/urcu-ht.c b/urcu-ht.c index 8edfae3..0498618 100644 --- a/urcu-ht.c +++ b/urcu-ht.c @@ -55,6 +55,11 @@ void ht_delete_all(struct rcu_ht *ht) break; } prev = &node->next; + /* + * FIXME: calling call_rcu within a read-side C.S. is a + * bug, because it may call synchronize_rcu() if the + * callback queue is full. + */ if (node->data) call_rcu(ht->free_fct, node->data); call_rcu(free, node);