*/
struct dns_adbnamebucket {
dns_adbnamelist_t names;
- dns_adbnamelist_t deadnames;
isc_mutex_t lock;
isc_refcount_t references;
size_t keysize;
*/
struct dns_adbentrybucket {
dns_adbentrylist_t entries;
- dns_adbentrylist_t deadentries;
isc_mutex_t lock;
isc_refcount_t references;
size_t keysize;
* we'll clean it up later.
*/
if (!NAME_DEAD(adbname)) {
- dns_adbnamebucket_t *nbucket = adbname->bucket;
- ISC_LIST_UNLINK(nbucket->names, adbname, plink);
- ISC_LIST_APPEND(nbucket->deadnames, adbname, plink);
adbname->flags |= NAME_IS_DEAD;
}
}
REQUIRE(nbucket != NULL);
- if (NAME_DEAD(name)) {
- ISC_LIST_UNLINK(nbucket->deadnames, name, plink);
- } else {
- ISC_LIST_UNLINK(nbucket->names, name, plink);
- }
+ ISC_LIST_UNLINK(nbucket->names, name, plink);
isc_refcount_decrement(&nbucket->references);
}
INSIST((e->flags & ENTRY_IS_DEAD) == 0);
e->flags |= ENTRY_IS_DEAD;
- ISC_LIST_UNLINK(ebucket->entries, e, plink);
- ISC_LIST_PREPEND(ebucket->deadentries, e, plink);
}
}
DP(DEF_LEVEL, "unlink ADB entry %p from bucket %p", entry, ebucket);
- if ((entry->flags & ENTRY_IS_DEAD) != 0) {
- ISC_LIST_UNLINK(ebucket->deadentries, entry, plink);
- } else {
- ISC_LIST_UNLINK(ebucket->entries, entry, plink);
- }
+ ISC_LIST_UNLINK(ebucket->entries, entry, plink);
isc_refcount_decrement(&ebucket->references);
}
memmove(ebucket->key, key, keysize);
ISC_LIST_INIT(ebucket->entries);
- ISC_LIST_INIT(ebucket->deadentries);
isc_mutex_init(&ebucket->lock);
isc_refcount_init(&ebucket->references, 0);