diff options
| author | Alon Levy <alevy@redhat.com> | 2010-11-11 16:42:24 +0200 |
|---|---|---|
| committer | Alon Levy <alevy@redhat.com> | 2011-03-02 17:27:52 +0200 |
| commit | 88db43879be888bfc2841bb5edab85b194bee79b (patch) | |
| tree | abe676b0565f5d1d806016ccd6c240d4b0d725ab /server | |
| parent | 7a650e96419df8ac231e57f0e5a22b31b7f8808b (diff) | |
server/red_channel: add red_channel_send_message_pending
Diffstat (limited to 'server')
| -rw-r--r-- | server/red_channel.c | 5 | ||||
| -rw-r--r-- | server/red_channel.h | 3 | ||||
| -rw-r--r-- | server/red_worker.c | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/server/red_channel.c b/server/red_channel.c index 8476319b..f2665a46 100644 --- a/server/red_channel.c +++ b/server/red_channel.c @@ -711,6 +711,11 @@ int red_channel_any_blocked(RedChannel *channel) return channel->send_data.blocked; } +int red_channel_send_message_pending(RedChannel *channel) +{ + return channel->send_data.header->type != 0; +} + /* accessors for RedChannel */ SpiceMarshaller *red_channel_get_marshaller(RedChannel *channel) { diff --git a/server/red_channel.h b/server/red_channel.h index 96b60952..ce8ef20a 100644 --- a/server/red_channel.h +++ b/server/red_channel.h @@ -257,6 +257,9 @@ int red_channel_all_blocked(RedChannel *channel); /* return TRUE if any of the connected clients to this channel are blocked */ int red_channel_any_blocked(RedChannel *channel); +/* helper for channels that have complex logic that can possibly ready a send */ +int red_channel_send_message_pending(RedChannel *channel); + // TODO: unstaticed for display/cursor channels. they do some specific pushes not through // adding elements or on events. but not sure if this is actually required (only result // should be that they ""try"" a little harder, but if the event system is correct it diff --git a/server/red_worker.c b/server/red_worker.c index e0894d9a..41c53c4c 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -7132,7 +7132,7 @@ static void red_lossy_send_qxl_drawable(RedWorker *worker, DisplayChannel *displ } // a message is pending - if (display_channel->common.base.send_data.header->type != 0) { + if (red_channel_send_message_pending(&display_channel->common.base)) { display_begin_send_message(display_channel); } } |
