[Spice-devel] [PATCH 3/5] worker: use GOnce to surround some global init in dispatcher
Frediano Ziglio
fziglio at redhat.com
Fri Oct 16 04:13:50 PDT 2015
>
> From: Marc-André Lureau <marcandre.lureau at gmail.com>
>
> ---
> server/red_dispatcher.c | 10 +++++++---
> server/spice_server_utils.h | 1 +
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c
> index b11cd42..7ad860c 100644
> --- a/server/red_dispatcher.c
> +++ b/server/red_dispatcher.c
> @@ -1076,11 +1076,15 @@ void red_dispatcher_init(QXLInstance *qxl)
>
> spice_return_if_fail(qxl->st->dispatcher == NULL);
>
> - quic_init();
> - sw_canvas_init();
> + static gsize initialized = FALSE;
> + if (g_once_init_enter(&initialized)) {
> + quic_init();
> + sw_canvas_init();
> #ifdef USE_OPENGL
> - gl_canvas_init();
> + gl_canvas_init();
> #endif // USE_OPENGL
> + g_once_init_leave(&initialized, TRUE);
> + }
>
In each of these functions there is a similar test.
I'll ditch the patch entirely.
> red_dispatcher = spice_new0(RedDispatcher, 1);
> ring_init(&red_dispatcher->async_commands);
> diff --git a/server/spice_server_utils.h b/server/spice_server_utils.h
> index b3ddc27..c8135db 100644
> --- a/server/spice_server_utils.h
> +++ b/server/spice_server_utils.h
> @@ -2,6 +2,7 @@
> #define H_SPICE_SERVER_UTIL
>
> #include <unistd.h>
> +#include <glib.h>
>
> static inline void set_bit(int index, uint32_t *addr)
> {
Frediano
More information about the Spice-devel
mailing list