[libsoup/wip/http2-a: 6/7] Add soup_add_timeout_reffed()
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup/wip/http2-a: 6/7] Add soup_add_timeout_reffed()
- Date: Thu, 26 Feb 2015 15:50:37 +0000 (UTC)
commit eaa46acc264de3a63b2d529b56aeffc5fac042cb
Author: Dan Winship <danw gnome org>
Date: Sun Dec 7 21:17:26 2014 +0100
Add soup_add_timeout_reffed()
libsoup/soup-misc-private.h | 4 ++++
libsoup/soup-misc.c | 17 ++++++++++++++---
libsoup/soup-session.c | 9 ++++-----
3 files changed, 22 insertions(+), 8 deletions(-)
---
diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h
index 7826533..3a6cf12 100644
--- a/libsoup/soup-misc-private.h
+++ b/libsoup/soup-misc-private.h
@@ -33,6 +33,10 @@ gboolean soup_uri_is_https (SoupURI *uri, char **aliases);
GSource *soup_add_completion_reffed (GMainContext *async_context,
GSourceFunc function,
gpointer data);
+GSource *soup_add_timeout_reffed (GMainContext *async_context,
+ guint interval,
+ GSourceFunc function,
+ gpointer data);
guint soup_message_headers_get_ranges_internal (SoupMessageHeaders *hdrs,
goffset total_length,
diff --git a/libsoup/soup-misc.c b/libsoup/soup-misc.c
index 325b587..747a5d4 100644
--- a/libsoup/soup-misc.c
+++ b/libsoup/soup-misc.c
@@ -153,6 +153,17 @@ soup_add_completion (GMainContext *async_context,
return source;
}
+GSource *
+soup_add_timeout_reffed (GMainContext *async_context,
+ guint interval,
+ GSourceFunc function, gpointer data)
+{
+ GSource *source = g_timeout_source_new (interval);
+ g_source_set_callback (source, function, data, NULL);
+ g_source_attach (source, async_context);
+ return source;
+}
+
/**
* soup_add_timeout: (skip)
* @async_context: (allow-none): the #GMainContext to dispatch the I/O
@@ -172,9 +183,9 @@ soup_add_timeout (GMainContext *async_context,
guint interval,
GSourceFunc function, gpointer data)
{
- GSource *source = g_timeout_source_new (interval);
- g_source_set_callback (source, function, data, NULL);
- g_source_attach (source, async_context);
+ GSource *source;
+
+ source = soup_add_timeout_reffed (async_context, interval, function, data);
g_source_unref (source);
return source;
}
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index ae9bb21..c97614d 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -1432,11 +1432,10 @@ drop_connection (SoupSession *session, SoupSessionHost *host, SoupConnection *co
*/
if (host->num_conns == 0) {
g_assert (host->keep_alive_src == NULL);
- host->keep_alive_src = soup_add_timeout (priv->async_context,
- HOST_KEEP_ALIVE,
- free_unused_host,
- host);
- host->keep_alive_src = g_source_ref (host->keep_alive_src);
+ host->keep_alive_src = soup_add_timeout_reffed (priv->async_context,
+ HOST_KEEP_ALIVE,
+ free_unused_host,
+ host);
}
if (soup_connection_get_ssl_fallback (conn))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]