worker: use GOnce to surround some global init in dispatcher

Acked-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
Marc-André Lureau 2013-09-02 22:01:26 +02:00 committed by Frediano Ziglio
parent b15527e063
commit 314dfefca3
2 changed files with 8 additions and 3 deletions

View File

@ -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);
}
red_dispatcher = spice_new0(RedDispatcher, 1);
ring_init(&red_dispatcher->async_commands);

View File

@ -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)
{