Hacker News
new
|
past
|
comments
|
ask
|
show
|
jobs
|
submit
login
dannywoodz
on March 28, 2013
|
parent
|
context
|
favorite
| on:
Common Pitfalls in Writing Lock-Free Algorithms
Isn't the very first example in that article flawed?
void decrement_reference_counter(rc_base* obj) { if (0 == atomic_decrement(obj->rc)) delete obj; }
This is classic test-then-act, isn't it? What happens if another thread bumps obj->rc after the comparison to 0, but before the deletion? That other thread could find itself referring to a suddenly-deleted object, or am I missing something?
Guidelines
|
FAQ
|
Lists
|
API
|
Security
|
Legal
|
Apply to YC
|
Contact
Search: