Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You’re thinking of the kernel and urcu implementations. The RCU implementation that I linked here isn’t exotic at all. It creates a duplicate structure and atomically swaps pointers. If the swap fails because another update occurred, it tries creating a new duplicate structure running your RCU closure and swapping again. Forward progress is eventually made although it scales poorly if you have a lot of concurrent updaters.

So not quite as performant but in terms of having a writer and lots of concurrent readers, it achieves that requirement. And it’s data structure agnostic and you only need to pay this cost if you really have concurrency.



Well, my point is that hazard pointers are not really that exotic either :D.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: