----- Original Message ----- > This creates a synchronization point and allows API users to rely on the fact > that they'll always get a UUID notification before all of the channels are > created. > --- > gtk/channel-main.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/gtk/channel-main.c b/gtk/channel-main.c > index 5c33e67..c2d298e 100644 > --- a/gtk/channel-main.c > +++ b/gtk/channel-main.c > @@ -83,6 +83,7 @@ struct _SpiceMainChannelPrivate { > gboolean display_disable_animation:1; > gboolean disable_display_position:1; > gboolean disable_display_align:1; > + gboolean did_receive_uuid:1; > > int agent_tokens; > VDAgentMessage agent_msg; /* partial msg reconstruction */ > @@ -1477,12 +1478,14 @@ static void main_handle_name(SpiceChannel *channel, > SpiceMsgIn *in) > /* coroutine context */ > static void main_handle_uuid(SpiceChannel *channel, SpiceMsgIn *in) > { > + SpiceMainChannel *c = SPICE_MAIN_CHANNEL(channel); > SpiceMsgMainUuid *uuid = spice_msg_in_parsed(in); > SpiceSession *session = spice_channel_get_session(channel); > gchar *uuid_str = spice_uuid_to_string(uuid->uuid); > > SPICE_DEBUG("server uuid: %s", uuid_str); > spice_session_set_uuid(session, uuid->uuid); > + c->priv->did_receive_uuid = TRUE; > > g_free(uuid_str); > } > @@ -1519,11 +1522,18 @@ static gboolean _channel_new(channel_new_t *c) > /* coroutine context */ > static void main_handle_channels_list(SpiceChannel *channel, SpiceMsgIn *in) > { > + SpiceMainChannel *main_channel = SPICE_MAIN_CHANNEL(channel); > SpiceMsgChannels *msg = spice_msg_in_parsed(in); > SpiceSession *session; > int i; > > session = spice_channel_get_session(channel); > + > + /* guarantee that uuid is notified before setting up the channels, even > if > + * the server is older and doesn't actually send the uuid */ > + if (!main_channel->priv->did_receive_uuid) > + g_object_notify_main_context(G_OBJECT(session), "uuid"); You can notify unconditionnaly. ack otherwise > + > for (i = 0; i < msg->num_of_channels; i++) { > channel_new_t *c; > > -- > 1.8.3.1 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel