[Spice-devel] [PATCH spice-server 05/10] main-dispatcher: Use dispatcher_send_message_generic

Jonathon Jongsma jjongsma at redhat.com
Wed Mar 20 16:58:11 UTC 2019


There should be some justification in the commit log about why this is
an improvement. 

Jonathon

On Wed, 2019-03-20 at 09:59 +0000, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/main-dispatcher.c | 38 ++++++++------------------------------
>  1 file changed, 8 insertions(+), 30 deletions(-)
> 
> diff --git a/server/main-dispatcher.c b/server/main-dispatcher.c
> index 839e7242..904579a8 100644
> --- a/server/main-dispatcher.c
> +++ b/server/main-dispatcher.c
> @@ -121,15 +121,6 @@ main_dispatcher_init(MainDispatcher *self)
>      self->priv = main_dispatcher_get_instance_private(self);
>  }
>  
> -enum {
> -    MAIN_DISPATCHER_CHANNEL_EVENT = 0,
> -    MAIN_DISPATCHER_MIGRATE_SEAMLESS_DST_COMPLETE,
> -    MAIN_DISPATCHER_SET_MM_TIME_LATENCY,
> -    MAIN_DISPATCHER_CLIENT_DISCONNECT,
> -
> -    MAIN_DISPATCHER_NUM_MESSAGES
> -};
> -
>  typedef struct MainDispatcherChannelEventMessage {
>      int event;
>      SpiceChannelEventInfo *info;
> @@ -168,8 +159,8 @@ void main_dispatcher_channel_event(MainDispatcher
> *self, int event, SpiceChannel
>      }
>      msg.event = event;
>      msg.info = info;
> -    dispatcher_send_message(DISPATCHER(self),
> MAIN_DISPATCHER_CHANNEL_EVENT,
> -                            &msg);
> +    dispatcher_send_message_generic(DISPATCHER(self),
> main_dispatcher_handle_channel_event,
> +                                    &msg, sizeof(msg), false);
>  }
>  
>  
> @@ -214,8 +205,8 @@ void
> main_dispatcher_seamless_migrate_dst_complete(MainDispatcher *self,
>      }
>  
>      msg.client = g_object_ref(client);
> -    dispatcher_send_message(DISPATCHER(self),
> MAIN_DISPATCHER_MIGRATE_SEAMLESS_DST_COMPLETE,
> -                            &msg);
> +    dispatcher_send_message_generic(DISPATCHER(self),
> main_dispatcher_handle_migrate_complete,
> +                                    &msg, sizeof(msg), false);
>  }
>  
>  void main_dispatcher_set_mm_time_latency(MainDispatcher *self,
> RedClient *client, uint32_t latency)
> @@ -229,8 +220,8 @@ void
> main_dispatcher_set_mm_time_latency(MainDispatcher *self, RedClient
> *client
>  
>      msg.client = g_object_ref(client);
>      msg.latency = latency;
> -    dispatcher_send_message(DISPATCHER(self),
> MAIN_DISPATCHER_SET_MM_TIME_LATENCY,
> -                            &msg);
> +    dispatcher_send_message_generic(DISPATCHER(self),
> main_dispatcher_handle_mm_time_latency,
> +                                    &msg, sizeof(msg), false);
>  }
>  
>  void main_dispatcher_client_disconnect(MainDispatcher *self,
> RedClient *client)
> @@ -240,8 +231,8 @@ void
> main_dispatcher_client_disconnect(MainDispatcher *self, RedClient
> *client)
>      if (!red_client_is_disconnecting(client)) {
>          spice_debug("client %p", client);
>          msg.client = g_object_ref(client);
> -        dispatcher_send_message(DISPATCHER(self),
> MAIN_DISPATCHER_CLIENT_DISCONNECT,
> -                                &msg);
> +        dispatcher_send_message_generic(DISPATCHER(self),
> main_dispatcher_handle_client_disconnect,
> +                                        &msg, sizeof(msg), false);
>      } else {
>          spice_debug("client %p already during disconnection",
> client);
>      }
> @@ -263,7 +254,6 @@ MainDispatcher* main_dispatcher_new(RedsState
> *reds)
>  {
>      MainDispatcher *self = g_object_new(TYPE_MAIN_DISPATCHER,
>                                          "spice-server", reds,
> -                                        "max-message-type",
> MAIN_DISPATCHER_NUM_MESSAGES,
>                                          NULL);
>      return self;
>  }
> @@ -280,18 +270,6 @@ void main_dispatcher_constructed(GObject
> *object)
>                              dispatcher_get_recv_fd(DISPATCHER(self))
> ,
>                              SPICE_WATCH_EVENT_READ,
> dispatcher_handle_read,
>                              DISPATCHER(self));
> -    dispatcher_register_handler(DISPATCHER(self),
> MAIN_DISPATCHER_CHANNEL_EVENT,
> -                                main_dispatcher_handle_channel_event
> ,
> -                                sizeof(MainDispatcherChannelEventMes
> sage), false);
> -    dispatcher_register_handler(DISPATCHER(self),
> MAIN_DISPATCHER_MIGRATE_SEAMLESS_DST_COMPLETE,
> -                                main_dispatcher_handle_migrate_compl
> ete,
> -                                sizeof(MainDispatcherMigrateSeamless
> DstCompleteMessage), false);
> -    dispatcher_register_handler(DISPATCHER(self),
> MAIN_DISPATCHER_SET_MM_TIME_LATENCY,
> -                                main_dispatcher_handle_mm_time_laten
> cy,
> -                                sizeof(MainDispatcherMmTimeLatencyMe
> ssage), false);
> -    dispatcher_register_handler(DISPATCHER(self),
> MAIN_DISPATCHER_CLIENT_DISCONNECT,
> -                                main_dispatcher_handle_client_discon
> nect,
> -                                sizeof(MainDispatcherClientDisconnec
> tMessage), false);
>  }
>  
>  static void main_dispatcher_finalize(GObject *object)



More information about the Spice-devel mailing list