The bottom bit in this implementation is not (no longer?) used to mark deleted elements, as is also pointed out in one of the quick questions. Signed-off-by: Johann Klähn <johann@xxxxxxxxxx> --- CodeSamples/defer/hazptr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CodeSamples/defer/hazptr.c b/CodeSamples/defer/hazptr.c index 2621d407..b84391f4 100644 --- a/CodeSamples/defer/hazptr.c +++ b/CodeSamples/defer/hazptr.c @@ -119,7 +119,7 @@ void hazptr_scan() //\lnlbl{scan:b} //\fcvblank if (!hp) continue; - plist[psize++] = (hazptr_head_t *)(hp & ~0x1UL); + plist[psize++] = (hazptr_head_t *)hp; } //\lnlbl{scan:loop:e} smp_mb(); /* ensure freeing happens after scan. */ //\lnlbl{scan:mb2} -- 2.34.1