[libsoup] Use GLib API for atomic reference counting
- From: Patrick Griffis <pgriffis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] Use GLib API for atomic reference counting
- Date: Sat, 14 Nov 2020 18:13:51 +0000 (UTC)
commit 4ae215b4895e6611176d1089fcac0a7d69423220
Author: Patrick Griffis <pgriffis igalia com>
Date: Sat Nov 14 12:13:30 2020 -0600
Use GLib API for atomic reference counting
libsoup/server/soup-message-body.c | 8 ++++----
libsoup/soup-message-headers.c | 9 +++++----
libsoup/soup-socket-properties.c | 7 ++++---
libsoup/soup-socket-properties.h | 2 +-
4 files changed, 14 insertions(+), 12 deletions(-)
---
diff --git a/libsoup/server/soup-message-body.c b/libsoup/server/soup-message-body.c
index 321f4075..d31121ef 100644
--- a/libsoup/server/soup-message-body.c
+++ b/libsoup/server/soup-message-body.c
@@ -62,7 +62,7 @@ typedef struct {
GBytes *flattened;
gboolean accumulate;
goffset base_offset;
- int ref_count;
+ gatomicrefcount ref_count;
} SoupMessageBodyPrivate;
/**
@@ -80,7 +80,7 @@ soup_message_body_new (void)
priv = g_slice_new0 (SoupMessageBodyPrivate);
priv->accumulate = TRUE;
- priv->ref_count = 1;
+ g_atomic_ref_count_init (&priv->ref_count);
return (SoupMessageBody *)priv;
}
@@ -402,7 +402,7 @@ soup_message_body_copy (SoupMessageBody *body)
{
SoupMessageBodyPrivate *priv = (SoupMessageBodyPrivate *)body;
- g_atomic_int_inc (&priv->ref_count);
+ g_atomic_ref_count_inc (&priv->ref_count);
return body;
}
@@ -418,7 +418,7 @@ soup_message_body_free (SoupMessageBody *body)
{
SoupMessageBodyPrivate *priv = (SoupMessageBodyPrivate *)body;
- if (!g_atomic_int_dec_and_test (&priv->ref_count))
+ if (!g_atomic_ref_count_dec (&priv->ref_count))
return;
soup_message_body_truncate (body);
diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c
index c84d7504..588f03a0 100644
--- a/libsoup/soup-message-headers.c
+++ b/libsoup/soup-message-headers.c
@@ -59,7 +59,7 @@ struct _SoupMessageHeaders {
SoupExpectation expectations;
char *content_type;
- int ref_count;
+ gatomicrefcount ref_count;
};
/**
@@ -82,7 +82,8 @@ soup_message_headers_new (SoupMessageHeadersType type)
hdrs->array = g_array_sized_new (TRUE, FALSE, sizeof (SoupHeader), 5);
hdrs->type = type;
hdrs->encoding = -1;
- hdrs->ref_count = 1;
+
+ g_atomic_ref_count_init (&hdrs->ref_count);
return hdrs;
}
@@ -90,7 +91,7 @@ soup_message_headers_new (SoupMessageHeadersType type)
static SoupMessageHeaders *
soup_message_headers_copy (SoupMessageHeaders *hdrs)
{
- g_atomic_int_inc (&hdrs->ref_count);
+ g_atomic_ref_count_inc (&hdrs->ref_count);
return hdrs;
}
@@ -103,7 +104,7 @@ soup_message_headers_copy (SoupMessageHeaders *hdrs)
void
soup_message_headers_free (SoupMessageHeaders *hdrs)
{
- if (!g_atomic_int_dec_and_test (&hdrs->ref_count))
+ if (!g_atomic_ref_count_dec (&hdrs->ref_count))
return;
soup_message_headers_clear (hdrs);
diff --git a/libsoup/soup-socket-properties.c b/libsoup/soup-socket-properties.c
index 622d69d4..5ceecd76 100644
--- a/libsoup/soup-socket-properties.c
+++ b/libsoup/soup-socket-properties.c
@@ -21,7 +21,8 @@ soup_socket_properties_new (GProxyResolver *proxy_resolver,
SoupSocketProperties *props;
props = g_slice_new (SoupSocketProperties);
- props->ref_count = 1;
+
+ g_atomic_ref_count_init (&props->ref_count);
props->proxy_resolver = proxy_resolver ? g_object_ref (proxy_resolver) : NULL;
props->local_addr = local_addr ? g_object_ref (local_addr) : NULL;
@@ -38,14 +39,14 @@ soup_socket_properties_new (GProxyResolver *proxy_resolver,
SoupSocketProperties *
soup_socket_properties_ref (SoupSocketProperties *props)
{
- g_atomic_int_inc (&props->ref_count);
+ g_atomic_ref_count_inc (&props->ref_count);
return props;
}
void
soup_socket_properties_unref (SoupSocketProperties *props)
{
- if (!g_atomic_int_dec_and_test (&props->ref_count))
+ if (!g_atomic_ref_count_dec (&props->ref_count))
return;
g_clear_object (&props->proxy_resolver);
diff --git a/libsoup/soup-socket-properties.h b/libsoup/soup-socket-properties.h
index 68b26f7f..8f77a43d 100644
--- a/libsoup/soup-socket-properties.h
+++ b/libsoup/soup-socket-properties.h
@@ -19,7 +19,7 @@ typedef struct {
guint idle_timeout;
/*< private >*/
- guint ref_count;
+ gatomicrefcount ref_count;
} SoupSocketProperties;
GType soup_socket_properties_get_type (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]