Use atomic store operations instead of atomic initialize

The atomic_init() function makes sense to use with structure's
members when creating a new instance of a strucutre. In other
places, use atomic store operations instead, in order to avoid
data races.
This commit is contained in:
Aram Sargsyan
2023-12-15 09:43:36 +00:00
parent edcabe8030
commit 791a046cc7

View File

@@ -1260,8 +1260,8 @@ xfrin_start(dns_xfrin_t *xfr) {
* The "SOA before" mode is used, where the SOA request is
* using the same transport as the XFR.
*/
atomic_init(&xfr->soa_transport_type,
dns_xfrin_gettransporttype(xfr));
atomic_store_relaxed(&xfr->soa_transport_type,
dns_xfrin_gettransporttype(xfr));
}
/* Set the maximum timer */
@@ -1552,10 +1552,10 @@ xfrin_send_request(dns_xfrin_t *xfr) {
CHECK(add_opt(msg, udpsize, reqnsid, reqexpire));
}
atomic_init(&xfr->nmsg, 0);
atomic_init(&xfr->nrecs, 0);
atomic_init(&xfr->nbytes, 0);
atomic_init(&xfr->start, isc_time_now());
atomic_store_relaxed(&xfr->nmsg, 0);
atomic_store_relaxed(&xfr->nrecs, 0);
atomic_store_relaxed(&xfr->nbytes, 0);
atomic_store_relaxed(&xfr->start, isc_time_now());
msg->id = xfr->id;
if (xfr->tsigctx != NULL) {