summaryrefslogtreecommitdiffstats
path: root/server/red_tunnel_worker.c
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2010-11-04 17:20:24 +0200
committerAlon Levy <alevy@redhat.com>2011-02-07 19:21:21 +0200
commit7dfd7a0c779da2df2c90ea59a9defb313779aaca (patch)
tree425f3ae05f62a76ce7d8444162646dbc731dc69f /server/red_tunnel_worker.c
parente571b5ebbb5f60d264f2d2eab8ec34d389fd3752 (diff)
downloadspice-7dfd7a0c779da2df2c90ea59a9defb313779aaca.tar.gz
spice-7dfd7a0c779da2df2c90ea59a9defb313779aaca.tar.xz
spice-7dfd7a0c779da2df2c90ea59a9defb313779aaca.zip
server/red_channel: add hold_item (from red_worker)
hold_item called on init_send_data, matching release. This is not the behavior of red_worker - we ref++ (==hold_item) when sending the item, and --refs when releasing it, instead of only holding if the send is blocked. Note 1: Naming: hold_pipe_item is the proc name, the variable is called hold_item, this is similar to release_item/release_pipe_item naming. Note 2: All channels have empty implementation, we later use this when red_worker get's RedChannelized.
Diffstat (limited to 'server/red_tunnel_worker.c')
-rw-r--r--server/red_tunnel_worker.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/server/red_tunnel_worker.c b/server/red_tunnel_worker.c
index 6092a76f..2553943f 100644
--- a/server/red_tunnel_worker.c
+++ b/server/red_tunnel_worker.c
@@ -3420,6 +3420,10 @@ static void on_new_tunnel_channel(TunnelChannel *channel)
}
}
+static void tunnel_channel_hold_pipe_item(PipeItem *item)
+{
+}
+
static void handle_tunnel_channel_link(Channel *channel, RedsStreamContext *peer, int migration,
int num_common_caps, uint32_t *common_caps, int num_caps,
uint32_t *caps)
@@ -3438,6 +3442,7 @@ static void handle_tunnel_channel_link(Channel *channel, RedsStreamContext *peer
tunnel_channel_handle_message,
tunnel_channel_alloc_msg_rcv_buf,
tunnel_channel_release_msg_rcv_buf,
+ tunnel_channel_hold_pipe_item,
tunnel_channel_send_item,
tunnel_channel_release_pipe_item);