summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/network.c b/src/network.c
index cd0b9c89..090b7e73 100644
--- a/src/network.c
+++ b/src/network.c
@@ -32,7 +32,7 @@ static GSList *network_list = NULL;
static GSList *driver_list = NULL;
struct connman_network {
- gint refcount;
+ int refcount;
enum connman_network_type type;
connman_bool_t available;
connman_bool_t connected;
@@ -389,9 +389,9 @@ struct connman_network *connman_network_create(const char *identifier,
struct connman_network *connman_network_ref(struct connman_network *network)
{
DBG("network %p name %s refcount %d", network, network->name,
- g_atomic_int_get(&network->refcount) + 1);
+ network->refcount + 1);
- g_atomic_int_inc(&network->refcount);
+ __sync_fetch_and_add(&network->refcount, 1);
return network;
}
@@ -405,9 +405,9 @@ struct connman_network *connman_network_ref(struct connman_network *network)
void connman_network_unref(struct connman_network *network)
{
DBG("network %p name %s refcount %d", network, network->name,
- g_atomic_int_get(&network->refcount) - 1);
+ network->refcount - 1);
- if (g_atomic_int_dec_and_test(&network->refcount) == FALSE)
+ if (__sync_fetch_and_sub(&network->refcount, 1) != 1)
return;
network_list = g_slist_remove(network_list, network);