[Spice-devel] [spice-server 2/6] Use bool in ConnectivityMonitor

Jonathon Jongsma jjongsma at redhat.com
Fri Apr 7 16:06:55 UTC 2017


Interesting. OK

Acked-by: Jonathon Jongsma <jjongsma at redhat.com>


On Fri, 2017-04-07 at 16:31 +0200, Christophe Fergeau wrote:
> Their uint32_t value is never used, all that matters is whether we
> received data or not.
> ---
>  server/red-channel-client.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/server/red-channel-client.c b/server/red-channel-
> client.c
> index ef0e892..c988170 100644
> --- a/server/red-channel-client.c
> +++ b/server/red-channel-client.c
> @@ -80,8 +80,8 @@ typedef struct RedChannelClientLatencyMonitor {
>  
>  typedef struct RedChannelClientConnectivityMonitor {
>      int state;
> -    uint32_t out_bytes;
> -    uint32_t in_bytes;
> +    bool sent_bytes;
> +    bool received_bytes;
>      uint32_t timeout;
>      SpiceTimer *timer;
>  } RedChannelClientConnectivityMonitor;
> @@ -465,7 +465,7 @@ RedChannel*
> red_channel_client_get_channel(RedChannelClient *rcc)
>  static void red_channel_client_data_sent(RedChannelClient *rcc, int
> n)
>  {
>      if (rcc->priv->connectivity_monitor.timer) {
> -        rcc->priv->connectivity_monitor.out_bytes += n;
> +        rcc->priv->connectivity_monitor.sent_bytes = true;
>      }
>      stat_inc_counter(rcc->priv->out_bytes, n);
>  }
> @@ -473,7 +473,7 @@ static void
> red_channel_client_data_sent(RedChannelClient *rcc, int n)
>  static void red_channel_client_data_read(RedChannelClient *rcc, int
> n)
>  {
>      if (rcc->priv->connectivity_monitor.timer) {
> -        rcc->priv->connectivity_monitor.in_bytes += n;
> +        rcc->priv->connectivity_monitor.received_bytes = true;
>      }
>  }
>  
> @@ -746,7 +746,7 @@ static void
> red_channel_client_connectivity_timer(void *opaque)
>      int is_alive = TRUE;
>  
>      if (monitor->state == CONNECTIVITY_STATE_BLOCKED) {
> -        if (monitor->in_bytes == 0 && monitor->out_bytes == 0) {
> +        if (!monitor->received_bytes && !monitor->sent_bytes) {
>              if (!rcc->priv->send_data.blocked &&
> !red_channel_client_waiting_for_ack(rcc)) {
>                  spice_error("mismatch between rcc-state and
> connectivity-state");
>              }
> @@ -754,7 +754,7 @@ static void
> red_channel_client_connectivity_timer(void *opaque)
>              is_alive = FALSE;
>          }
>      } else if (monitor->state == CONNECTIVITY_STATE_WAIT_PONG) {
> -        if (monitor->in_bytes == 0) {
> +        if (!monitor->received_bytes) {
>              if (rcc->priv->latency_monitor.state !=
> PING_STATE_WARMUP &&
>                  rcc->priv->latency_monitor.state !=
> PING_STATE_LATENCY) {
>                  spice_error("mismatch between rcc-state and
> connectivity-state");
> @@ -766,8 +766,8 @@ static void
> red_channel_client_connectivity_timer(void *opaque)
>  
>      if (is_alive) {
>          SpiceCoreInterfaceInternal *core =
> red_channel_get_core_interface(rcc->priv->channel);
> -        monitor->in_bytes = 0;
> -        monitor->out_bytes = 0;
> +        monitor->received_bytes = false;
> +        monitor->sent_bytes = false;
>          if (rcc->priv->send_data.blocked ||
> red_channel_client_waiting_for_ack(rcc)) {
>              monitor->state = CONNECTIVITY_STATE_BLOCKED;
>          } else if (rcc->priv->latency_monitor.state ==
> PING_STATE_WARMUP ||


More information about the Spice-devel mailing list