mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-22 01:56:00 -04:00
Previously, the fetch contexts were stored inside rwlocked hashmap table. This was one of the most contended places for the resolver, especially in the cold cache situation. Replace the locked hashmap with the lock-free hashtable from the RCU library and protect the fetch contexts against reuse by replacing the libisc reference counting with urcu_ref that can soft-fail in situation where the reference count is already zero. This allows us to easily skip re-using the fetch context if it is already in process of being destroyed. |
||
|---|---|---|
| .. | ||
| isc | ||
| .clang-format | ||