diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2012-05-24 11:00:33 +0300 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2012-05-24 11:00:33 +0300 |
commit | c59b2884a2f7fc953fdb263085830b65e8bdcaef (patch) | |
tree | 78c6302afb2c6cd9ae111ccb113583a691a2d159 | |
parent | 038ae54b1c4c43a63d346bdfe2db52b48f20a22e (diff) | |
download | spice-c59b2884a2f7fc953fdb263085830b65e8bdcaef.tar.gz spice-c59b2884a2f7fc953fdb263085830b65e8bdcaef.tar.xz spice-c59b2884a2f7fc953fdb263085830b65e8bdcaef.zip |
server/red_channel: remove red_channel_client_item_being_sent
The above routine was risky, since red_channel_client_init_send_data
can also be called with item==NULL. Thus, not all pipe items can be tracked.
The one call that was made for this routine was not necessary.
-rw-r--r-- | server/red_channel.c | 19 | ||||
-rw-r--r-- | server/red_channel.h | 9 | ||||
-rw-r--r-- | server/red_worker.c | 4 |
3 files changed, 1 insertions, 31 deletions
diff --git a/server/red_channel.c b/server/red_channel.c index a7ef934e..83a9f372 100644 --- a/server/red_channel.c +++ b/server/red_channel.c @@ -1374,25 +1374,6 @@ int red_channel_get_first_socket(RedChannel *channel) RedChannelClient, channel_link)->stream->socket; } -int red_channel_client_item_being_sent(RedChannelClient *rcc, PipeItem *item) -{ - return rcc->send_data.item == item; -} - -int red_channel_item_being_sent(RedChannel *channel, PipeItem *item) -{ - RingItem *link; - RedChannelClient *rcc; - - RING_FOREACH(link, &channel->clients) { - rcc = SPICE_CONTAINEROF(link, RedChannelClient, channel_link); - if (rcc->send_data.item == item) { - return TRUE; - } - } - return FALSE; -} - int red_channel_no_item_being_sent(RedChannel *channel) { RingItem *link; diff --git a/server/red_channel.h b/server/red_channel.h index 54182106..765b74ed 100644 --- a/server/red_channel.h +++ b/server/red_channel.h @@ -432,15 +432,6 @@ int red_channel_client_blocked(RedChannelClient *rcc); /* helper for channels that have complex logic that can possibly ready a send */ int red_channel_client_send_message_pending(RedChannelClient *rcc); -/* returns TRUE if item is being sent by one of the channel clients. This will - * be true if someone called init_send_data but send has not completed (or perhaps - * hasn't even begun, i.e. no one called begin_send_). - * However, note that red_channel_client_init_send_data can also be called with - * item==NULL, thus not all pipe items can be tracked. - */ -int red_channel_item_being_sent(RedChannel *channel, PipeItem *item); -int red_channel_client_item_being_sent(RedChannelClient *rcc, PipeItem *item); - int red_channel_no_item_being_sent(RedChannel *channel); int red_channel_client_no_item_being_sent(RedChannelClient *rcc); diff --git a/server/red_worker.c b/server/red_worker.c index 9e5624ba..2709486b 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -10364,9 +10364,7 @@ static void red_wait_pipe_item_sent(RedChannelClient *rcc, PipeItem *item) spice_printerr("timeout"); red_channel_client_disconnect(rcc); } else { - if (red_channel_client_item_being_sent(rcc, item)) { - red_wait_outgoing_item(rcc); - } + red_wait_outgoing_item(rcc); } channel->channel_cbs.release_item(rcc, item, FALSE); } |