[Spice-devel] [RFC PATCH] initialize global images at load time

Victor Toso lists at victortoso.com
Fri Feb 26 21:25:44 UTC 2016


Hi,

On Fri, Feb 26, 2016 at 10:37:21AM +0000, Frediano Ziglio wrote:
> This make sure these stuff are initialized without using runtime
> resources.
> Also make sure stuff are initialize really earlier.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/red-dispatcher.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/server/red-dispatcher.c b/server/red-dispatcher.c
> index c2ca6b6..d09d56d 100644
> --- a/server/red-dispatcher.c
> +++ b/server/red-dispatcher.c
> @@ -902,6 +902,12 @@ void red_dispatcher_async_complete(struct RedDispatcher *dispatcher,
>      free(async_command);
>  }
>
> +static void __attribute__((constructor)) red_dispatcher_global_init(void)
> +{
> +    quic_init();
> +    sw_canvas_init();
> +}

We could have a define for it in spice-common and use it in a few more
places I think. Also, it seems to be gcc specific so a #define could
help dealing with other compilers.


Cheers,
  toso

> +
>  void red_dispatcher_init(QXLInstance *qxl)
>  {
>      RedDispatcher *red_dispatcher;
> @@ -911,13 +917,6 @@ void red_dispatcher_init(QXLInstance *qxl)
>      spice_return_if_fail(qxl != NULL);
>      spice_return_if_fail(qxl->st->dispatcher == NULL);
>  
> -    static gsize initialized = FALSE;
> -    if (g_once_init_enter(&initialized)) {
> -        quic_init();
> -        sw_canvas_init();
> -        g_once_init_leave(&initialized, TRUE);
> -    }
> -
>      red_dispatcher = spice_new0(RedDispatcher, 1);
>      red_dispatcher->qxl = qxl;
>      dispatcher_init(&red_dispatcher->dispatcher, RED_WORKER_MESSAGE_COUNT, NULL);
> -- 
> 2.5.0
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list