}
fctx_done(fctx, result, __LINE__);
+ LOCK(&fctx->res->buckets[fctx->bucketnum].lock);
bucket_empty = fctx_decreference(fctx);
+ UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock);
if (bucket_empty) {
empty_bucket(fctx->res);
}
RRTRACE(source, "attach");
+ LOCK(&source->lock);
REQUIRE(!atomic_load_acquire(&source->exiting));
isc_refcount_increment(&source->references);
+ UNLOCK(&source->lock);
*targetp = source;
}
RUNTIME_CHECK(event->fetch != fetch);
}
}
- UNLOCK(&res->buckets[bucketnum].lock);
bucket_empty = fctx_decreference(fctx);
+ UNLOCK(&res->buckets[bucketnum].lock);
isc_mem_putanddetach(&fetch->mctx, fetch, sizeof(*fetch));
*fetchp = NULL;