[libsoup] websocket: add io priority paramater to soup_session_websocket_connect_async
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] websocket: add io priority paramater to soup_session_websocket_connect_async
- Date: Thu, 5 Nov 2020 13:38:23 +0000 (UTC)
commit c562b19dd0686d3db16d10802e3109f95603137a
Author: Carlos Garcia Campos <cgarcia igalia com>
Date: Thu Nov 5 14:37:38 2020 +0100
websocket: add io priority paramater to soup_session_websocket_connect_async
libsoup/soup-message-queue.h | 1 +
libsoup/soup-session.c | 19 ++++++++++---------
libsoup/soup-session.h | 1 +
tests/websocket-test.c | 4 +++-
4 files changed, 15 insertions(+), 10 deletions(-)
---
diff --git a/libsoup/soup-message-queue.h b/libsoup/soup-message-queue.h
index 58b35ac1..934b108a 100644
--- a/libsoup/soup-message-queue.h
+++ b/libsoup/soup-message-queue.h
@@ -55,6 +55,7 @@ struct _SoupMessageQueueItem {
guint connect_only : 1;
guint priority : 3;
guint resend_count : 5;
+ int io_priority;
SoupMessageQueueItemState state;
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index b40f3af5..d2258ccd 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -1368,9 +1368,7 @@ tunnel_message_completed (SoupMessage *msg, SoupMessageIOCompletion completion,
if (tunnel_item->async) {
soup_connection_tunnel_handshake_async (item->conn,
- item->task ?
- g_task_get_priority (item->task) :
- G_PRIORITY_DEFAULT,
+ item->io_priority,
item->cancellable,
(GAsyncReadyCallback)tunnel_handshake_complete,
tunnel_item);
@@ -1399,6 +1397,7 @@ tunnel_connect (SoupMessageQueueItem *item)
tunnel_item = soup_session_append_queue_item (session, msg,
item->async,
NULL, NULL);
+ tunnel_item->io_priority = item->io_priority;
tunnel_item->related = item;
soup_message_queue_item_ref (item);
soup_session_set_item_connection (session, tunnel_item, item->conn);
@@ -1608,9 +1607,7 @@ get_connection (SoupMessageQueueItem *item, gboolean *should_cleanup)
if (item->async) {
soup_message_queue_item_ref (item);
soup_connection_connect_async (item->conn,
- item->task ?
- g_task_get_priority (item->task) :
- G_PRIORITY_DEFAULT,
+ item->io_priority,
item->cancellable,
connect_async_complete, item);
return FALSE;
@@ -2900,7 +2897,7 @@ send_async_maybe_complete (SoupMessageQueueItem *item,
*/
g_output_stream_splice_async (ostream, stream,
G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET,
- g_task_get_priority (item->task),
+ item->io_priority,
item->cancellable,
send_async_spliced, item);
return;
@@ -2944,7 +2941,7 @@ async_send_request_running (SoupSession *session, SoupMessageQueueItem *item)
if (item->task) {
item->io_started = TRUE;
soup_message_io_run_until_read_async (item->msg,
- g_task_get_priority (item->task),
+ item->io_priority,
item->cancellable,
(GAsyncReadyCallback)run_until_read_done,
item);
@@ -3119,7 +3116,7 @@ async_respond_from_cache (SoupSession *session,
soup_message_queue_item_ref (item);
soup_message_disable_feature (conditional_msg, SOUP_TYPE_CACHE);
soup_session_send_async (session, conditional_msg,
- g_task_get_priority (item->task),
+ item->io_priority,
item->cancellable,
(GAsyncReadyCallback)conditional_get_ready_cb,
data);
@@ -3168,6 +3165,7 @@ soup_session_send_async (SoupSession *session,
item = soup_session_append_queue_item (session, msg, TRUE,
NULL, NULL);
+ item->io_priority = io_priority;
g_signal_connect (msg, "restarted",
G_CALLBACK (async_send_request_restarted), item);
g_signal_connect (msg, "finished",
@@ -4006,6 +4004,7 @@ websocket_connect_async_stop (SoupMessage *msg, gpointer user_data)
* @origin: (allow-none): origin of the connection
* @protocols: (allow-none) (array zero-terminated=1): a
* %NULL-terminated array of protocols supported
+ * @io_priority: the I/O priority of the request
* @cancellable: a #GCancellable
* @callback: the callback to invoke
* @user_data: data for @callback
@@ -4036,6 +4035,7 @@ soup_session_websocket_connect_async (SoupSession *session,
SoupMessage *msg,
const char *origin,
char **protocols,
+ int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
@@ -4063,6 +4063,7 @@ soup_session_websocket_connect_async (SoupSession *session,
task = g_task_new (session, cancellable, callback, user_data);
item = soup_session_append_queue_item (session, msg, TRUE,
websocket_connect_async_complete, task);
+ item->io_priority = io_priority;
g_task_set_task_data (task, item, (GDestroyNotify) soup_message_queue_item_unref);
soup_message_add_status_code_handler (msg, "got-informational",
diff --git a/libsoup/soup-session.h b/libsoup/soup-session.h
index 9dfd67e9..8b4e37f7 100644
--- a/libsoup/soup-session.h
+++ b/libsoup/soup-session.h
@@ -134,6 +134,7 @@ void soup_session_websocket_connect_async (SoupSession
SoupMessage *msg,
const char *origin,
char **protocols,
+ int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
diff --git a/tests/websocket-test.c b/tests/websocket-test.c
index 03a57172..ce1b9f81 100644
--- a/tests/websocket-test.c
+++ b/tests/websocket-test.c
@@ -286,6 +286,7 @@ client_connect (Test *test,
soup_session_websocket_connect_async (test->session, test->msg,
origin, (char **) protocols,
+ G_PRIORITY_DEFAULT,
NULL, callback, user_data);
}
@@ -458,7 +459,8 @@ test_handshake_unsupported_extension (Test *test,
test->msg = soup_message_new ("GET", url);
g_free (url);
- soup_session_websocket_connect_async (test->session, test->msg, NULL, NULL, NULL,
+ soup_session_websocket_connect_async (test->session, test->msg, NULL, NULL,
+ G_PRIORITY_DEFAULT, NULL,
got_client_connection, test);
WAIT_UNTIL (test->server != NULL);
WAIT_UNTIL (test->msg == NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]