From a364a3a7090b82ddd30e9209df2af56e781d51e4 Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Fri, 9 Sep 2022 14:22:26 +0100 Subject: Use C11 atomics instead of atomic_decrement(_val) Replace atomic_decrement and atomic_decrement_val with atomic_fetch_add_relaxed. Reviewed-by: DJ Delorie --- nscd/nscd-client.h | 2 +- nscd/nscd_getai.c | 2 +- nscd/nscd_getgr_r.c | 2 +- nscd/nscd_gethst_r.c | 2 +- nscd/nscd_getpw_r.c | 2 +- nscd/nscd_getserv_r.c | 2 +- nscd/nscd_helper.c | 2 +- nscd/nscd_initgroups.c | 2 +- nscd/nscd_netgroup.c | 4 ++-- 9 files changed, 10 insertions(+), 10 deletions(-) (limited to 'nscd') diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h index fee2a15..ca9e6de 100644 --- a/nscd/nscd-client.h +++ b/nscd/nscd-client.h @@ -421,7 +421,7 @@ __nscd_drop_map_ref (struct mapped_database *map, int *gc_cycle) return -1; } - if (atomic_decrement_val (&map->counter) == 0) + if (atomic_fetch_add_relaxed (&map->counter, -1) == 1) __nscd_unmap (map); } diff --git a/nscd/nscd_getai.c b/nscd/nscd_getai.c index a99a4d8..8e4650e 100644 --- a/nscd/nscd_getai.c +++ b/nscd/nscd_getai.c @@ -198,7 +198,7 @@ __nscd_getai (const char *key, struct nscd_ai_result **result, int *h_errnop) if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c index 3636c03..bde3b58 100644 --- a/nscd/nscd_getgr_r.c +++ b/nscd/nscd_getgr_r.c @@ -312,7 +312,7 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type, if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c index 9becb62..31d1358 100644 --- a/nscd/nscd_gethst_r.c +++ b/nscd/nscd_gethst_r.c @@ -440,7 +440,7 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type, if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } diff --git a/nscd/nscd_getpw_r.c b/nscd/nscd_getpw_r.c index 20986f4..82fdd17 100644 --- a/nscd/nscd_getpw_r.c +++ b/nscd/nscd_getpw_r.c @@ -225,7 +225,7 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type, if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c index 42b875d..de843b3 100644 --- a/nscd/nscd_getserv_r.c +++ b/nscd/nscd_getserv_r.c @@ -365,7 +365,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index 8e66fa2..0651817 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -390,7 +390,7 @@ __nscd_get_mapping (request_type type, const char *key, struct mapped_database *oldval = *mappedp; *mappedp = result; - if (oldval != NULL && atomic_decrement_val (&oldval->counter) == 0) + if (oldval != NULL && atomic_fetch_add_relaxed (&oldval->counter, -1) == 1) __nscd_unmap (oldval); return result; diff --git a/nscd/nscd_initgroups.c b/nscd/nscd_initgroups.c index dfce76a..47b6deb 100644 --- a/nscd/nscd_initgroups.c +++ b/nscd/nscd_initgroups.c @@ -166,7 +166,7 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size, if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } diff --git a/nscd/nscd_netgroup.c b/nscd/nscd_netgroup.c index 7e51dd3..11b7f32 100644 --- a/nscd/nscd_netgroup.c +++ b/nscd/nscd_netgroup.c @@ -148,7 +148,7 @@ __nscd_setnetgrent (const char *group, struct __netgrent *datap) if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } @@ -272,7 +272,7 @@ __nscd_innetgr (const char *netgroup, const char *host, const char *user, if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1) { /* nscd is just running gc now. Disable using the mapping. */ - if (atomic_decrement_val (&mapped->counter) == 0) + if (atomic_fetch_add_relaxed (&mapped->counter, -1) == 1) __nscd_unmap (mapped); mapped = NO_MAPPING; } -- cgit v1.1