res = fctx->res;
bucket = fctx->bucketnum;
- fctx->nqueries--;
-
LOCK(&res->buckets[bucket].lock);
+ fctx->nqueries--;
empty = fctx_decreference(query->fctx);
UNLOCK(&res->buckets[bucket].lock);
bool have_addr = false;
unsigned int srtt;
isc_dscp_t dscp = -1;
+ unsigned int bucketnum;
FCTXTRACE("query");
fctx->querysent++;
ISC_LIST_APPEND(fctx->queries, query, link);
- query->fctx->nqueries++;
+ bucketnum = fctx->bucketnum;
+ LOCK(&res->buckets[bucketnum].lock);
+ fctx->nqueries++;
+ UNLOCK(&res->buckets[bucketnum].lock);
if (isc_sockaddr_pf(&addrinfo->sockaddr) == PF_INET)
inc_stats(res, dns_resstatscounter_queryv4);
else