This was added in bd8771adbcf3ff34d14333cf874191e8d105f612. There's no reason to not use reds function instead. MainDispatcher needs to listen in the main thread that is the one provided by reds_core_* functions. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/main-dispatcher.c | 29 ++++++----------------------- server/main-dispatcher.h | 2 +- server/reds.c | 2 +- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/server/main-dispatcher.c b/server/main-dispatcher.c index 99d2a6216..82b25e6e4 100644 --- a/server/main-dispatcher.c +++ b/server/main-dispatcher.c @@ -48,7 +48,6 @@ */ struct MainDispatcherPrivate { - SpiceCoreInterfaceInternal *core; /* weak */ RedsState *reds; /* weak */ SpiceWatch *watch; }; @@ -58,7 +57,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(MainDispatcher, main_dispatcher, TYPE_DISPATCHER) enum { PROP0, PROP_SPICE_SERVER, - PROP_CORE_INTERFACE }; static void @@ -73,9 +71,6 @@ main_dispatcher_get_property(GObject *object, case PROP_SPICE_SERVER: g_value_set_pointer(value, self->priv->reds); break; - case PROP_CORE_INTERFACE: - g_value_set_pointer(value, self->priv->core); - break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } @@ -93,9 +88,6 @@ main_dispatcher_set_property(GObject *object, case PROP_SPICE_SERVER: self->priv->reds = g_value_get_pointer(value); break; - case PROP_CORE_INTERFACE: - self->priv->core = g_value_get_pointer(value); - break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } @@ -121,14 +113,6 @@ main_dispatcher_class_init(MainDispatcherClass *klass) "The spice server associated with this dispatcher", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property(object_class, - PROP_CORE_INTERFACE, - g_param_spec_pointer("core-interface", - "core-interface", - "The SpiceCoreInterface server associated with this dispatcher", - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); } static void @@ -284,11 +268,10 @@ static void dispatcher_handle_read(int fd, int event, void *opaque) * Reds routines shouldn't be exposed. Instead reds.c should register the callbacks, * and the corresponding operations should be made only via main_dispatcher. */ -MainDispatcher* main_dispatcher_new(RedsState *reds, SpiceCoreInterfaceInternal *core) +MainDispatcher* main_dispatcher_new(RedsState *reds) { MainDispatcher *self = g_object_new(TYPE_MAIN_DISPATCHER, "spice-server", reds, - "core-interface", core, "max-message-type", MAIN_DISPATCHER_NUM_MESSAGES, NULL); return self; @@ -302,10 +285,10 @@ void main_dispatcher_constructed(GObject *object) dispatcher_set_opaque(DISPATCHER(self), self); self->priv->watch = - self->priv->core->watch_add(self->priv->core, - dispatcher_get_recv_fd(DISPATCHER(self)), - SPICE_WATCH_EVENT_READ, dispatcher_handle_read, - DISPATCHER(self)); + reds_core_watch_add(self->priv->reds, + 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(MainDispatcherChannelEventMessage), false); @@ -324,7 +307,7 @@ static void main_dispatcher_finalize(GObject *object) { MainDispatcher *self = MAIN_DISPATCHER(object); - self->priv->core->watch_remove(self->priv->core, self->priv->watch); + reds_core_watch_remove(self->priv->reds, self->priv->watch); self->priv->watch = NULL; G_OBJECT_CLASS(main_dispatcher_parent_class)->finalize(object); } diff --git a/server/main-dispatcher.h b/server/main-dispatcher.h index 088a5c216..e1244f836 100644 --- a/server/main-dispatcher.h +++ b/server/main-dispatcher.h @@ -59,6 +59,6 @@ void main_dispatcher_set_mm_time_latency(MainDispatcher *self, RedClient *client */ void main_dispatcher_client_disconnect(MainDispatcher *self, RedClient *client); -MainDispatcher* main_dispatcher_new(RedsState *reds, SpiceCoreInterfaceInternal *core); +MainDispatcher* main_dispatcher_new(RedsState *reds); #endif /* MAIN_DISPATCHER_H_ */ diff --git a/server/reds.c b/server/reds.c index b73253947..306bb7c6e 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3504,7 +3504,7 @@ static int do_spice_init(RedsState *reds, SpiceCoreInterface *core_interface) reds->agent_dev = red_char_device_vdi_port_new(reds); reds_update_agent_properties(reds); reds->clients = NULL; - reds->main_dispatcher = main_dispatcher_new(reds, &reds->core); + reds->main_dispatcher = main_dispatcher_new(reds); reds->channels = NULL; reds->mig_target_clients = NULL; reds->char_devices = NULL; -- 2.20.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel