libsoup r1111 - in trunk: . libsoup
- From: danw svn gnome org
- To: svn-commits-list gnome org
- Subject: libsoup r1111 - in trunk: . libsoup
- Date: Tue, 18 Mar 2008 23:08:05 +0000 (GMT)
Author: danw
Date: Tue Mar 18 23:08:05 2008
New Revision: 1111
URL: http://svn.gnome.org/viewvc/libsoup?rev=1111&view=rev
Log:
* libsoup/soup-message-io.c (soup_message_io_unpause): if delaying
the unpause to idle time, we need to keep track of the idle source
(soup_message_io_stop): if the message is waiting to unpause
itself, cancel that
* libsoup/soup-server.c (soup_server_pause_message): call
soup_message_io_pause(), not soup_message_io_unpause(). Duh.
Modified:
trunk/ChangeLog
trunk/libsoup/soup-message-io.c
trunk/libsoup/soup-server.c
Modified: trunk/libsoup/soup-message-io.c
==============================================================================
--- trunk/libsoup/soup-message-io.c (original)
+++ trunk/libsoup/soup-message-io.c Tue Mar 18 23:08:05 2008
@@ -62,6 +62,7 @@
guint written;
guint read_tag, write_tag, err_tag;
+ GSource *unpause_source;
SoupMessageGetHeadersFn get_headers_cb;
SoupMessageParseHeadersFn parse_headers_cb;
@@ -139,6 +140,11 @@
io->err_tag = 0;
}
+ if (io->unpause_source) {
+ g_source_destroy (io->unpause_source);
+ io->unpause_source = NULL;
+ }
+
if (io->read_state < SOUP_MESSAGE_IO_STATE_FINISHING)
soup_socket_disconnect (io->sock);
else if (io->conn) {
@@ -874,6 +880,7 @@
SoupMessageIOData *io = priv->io_data;
g_return_val_if_fail (io != NULL, FALSE);
+ io->unpause_source = NULL;
if (io->write_tag || io->read_tag)
return FALSE;
@@ -910,9 +917,12 @@
SOUP_SOCKET_FLAG_NONBLOCKING, &non_blocking,
SOUP_SOCKET_ASYNC_CONTEXT, &async_context,
NULL);
- if (non_blocking)
- soup_add_idle (async_context, io_unpause_internal, msg);
- else
+ if (non_blocking) {
+ if (!io->unpause_source) {
+ io->unpause_source = soup_add_idle (
+ async_context, io_unpause_internal, msg);
+ }
+ } else
io_unpause_internal (msg);
if (async_context)
g_main_context_unref (async_context);
Modified: trunk/libsoup/soup-server.c
==============================================================================
--- trunk/libsoup/soup-server.c (original)
+++ trunk/libsoup/soup-server.c Tue Mar 18 23:08:05 2008
@@ -1288,7 +1288,7 @@
g_return_if_fail (SOUP_IS_SERVER (server));
g_return_if_fail (SOUP_IS_MESSAGE (msg));
- soup_message_io_unpause (msg);
+ soup_message_io_pause (msg);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]