summaryrefslogtreecommitdiff
path: root/libsoup/soup-message-server-io.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2012-11-06 10:37:54 -0500
committerDan Winship <danw@gnome.org>2013-12-11 10:38:22 +0100
commitd834e1e5d8e41f7fa1c082a7ab1ab9ce0335daed (patch)
treefc78810f7722534d568833e0c03ec457651fdf27 /libsoup/soup-message-server-io.c
parentdd3e2f4d9be661a5fae96c81618fb25c438916da (diff)
downloadlibsoup-wip/server.tar.gz
SoupServer: add exciting new APIs, deprecate musty old oneswip/server
FIXME: server-howto
Diffstat (limited to 'libsoup/soup-message-server-io.c')
-rw-r--r--libsoup/soup-message-server-io.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/libsoup/soup-message-server-io.c b/libsoup/soup-message-server-io.c
index 2647b811..53c0ba38 100644
--- a/libsoup/soup-message-server-io.c
+++ b/libsoup/soup-message-server-io.c
@@ -252,17 +252,22 @@ get_response_headers (SoupMessage *msg, GString *headers,
void
soup_message_read_request (SoupMessage *msg,
SoupSocket *sock,
+ gboolean use_thread_context,
SoupMessageCompletionFn completion_cb,
gpointer user_data)
{
GMainContext *async_context;
GIOStream *iostream;
- g_object_get (sock,
- SOUP_SOCKET_ASYNC_CONTEXT, &async_context,
- NULL);
- if (!async_context)
- async_context = g_main_context_ref (g_main_context_default ());
+ if (use_thread_context)
+ async_context = g_main_context_ref_thread_default ();
+ else {
+ g_object_get (sock,
+ SOUP_SOCKET_ASYNC_CONTEXT, &async_context,
+ NULL);
+ if (!async_context)
+ async_context = g_main_context_ref (g_main_context_default ());
+ }
iostream = soup_socket_get_iostream (sock);
@@ -271,6 +276,5 @@ soup_message_read_request (SoupMessage *msg,
parse_request_headers,
sock,
completion_cb, user_data);
- if (async_context)
- g_main_context_unref (async_context);
+ g_main_context_unref (async_context);
}