This avoids the one place we recursively lock turnstiles. In highly contended workloads the recursive locking actually imposes a performance penalty. We trade failed atomic cmpsets and multiple modifications to the lock cacheline for a few pointer comparisons.
Details
Details
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
99% of the time assert(3) will just compile out in userspace. Does this library have any other use of assert(3) (i.e. does it expect anybody to actually compile with -DDEBUG or whatever)?