mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-09 20:58:44 +00:00
a95141111c
The original algorithm was suffering from an ABA race condition: A: fp = page_stack B: completely allocates the same page and writes into it some data A: unsuspecting, loads (invalid) next = fp->next B: finishes working with the page and returns it back to page_stack A: compare-exchange page_stack: fp => next succeeds and writes garbage to page_stack Fixed this by using an implicit spinlock in hot page allocator. |
||
---|---|---|
.. | ||
bsd | ||
bsd-netlink | ||
cf | ||
linux | ||
unix | ||
config.h | ||
Doc | ||
sysdep.sgml |