diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-10-03 22:54:30 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-10-07 16:33:20 +0200 |
commit | 1d18b7e98ab268c755933061d77ccc7a981815e2 (patch) | |
tree | 8335fa9a97dfdb21d5d19d831674e3276916d15c /server/red_dispatcher.c | |
parent | 961fa773654b51dc8631e1113371b1c3feb21aaf (diff) | |
download | spice-1d18b7e98ab268c755933061d77ccc7a981815e2.tar.gz spice-1d18b7e98ab268c755933061d77ccc7a981815e2.tar.xz spice-1d18b7e98ab268c755933061d77ccc7a981815e2.zip |
server: set dispatcher before calling attache_worker
This allows to call spice_qxl_add_memslot during attache_worker(), like
done in the tests.
Diffstat (limited to 'server/red_dispatcher.c')
-rw-r--r-- | server/red_dispatcher.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c index 03a4c4ae..fd6c2e12 100644 --- a/server/red_dispatcher.c +++ b/server/red_dispatcher.c @@ -1072,7 +1072,7 @@ static RedChannel *red_dispatcher_cursor_channel_create(RedDispatcher *dispatche return cursor_channel; } -RedDispatcher *red_dispatcher_init(QXLInstance *qxl) +void red_dispatcher_init(QXLInstance *qxl) { RedDispatcher *red_dispatcher; RedWorkerMessage message; @@ -1085,6 +1085,8 @@ RedDispatcher *red_dispatcher_init(QXLInstance *qxl) sigset_t curr_sig_mask; ClientCbs client_cbs = { NULL, }; + spice_return_if_fail(qxl->st->dispatcher == NULL); + quic_init(); sw_canvas_init(); #ifdef USE_OPENGL @@ -1175,12 +1177,12 @@ RedDispatcher *red_dispatcher_init(QXLInstance *qxl) reds_register_channel(cursor_channel); } - qxl->st->qif->attache_worker(qxl, &red_dispatcher->base); - qxl->st->qif->set_compression_level(qxl, calc_compression_level()); - + qxl->st->dispatcher = red_dispatcher; red_dispatcher->next = dispatchers; dispatchers = red_dispatcher; - return red_dispatcher; + + qxl->st->qif->attache_worker(qxl, &red_dispatcher->base); + qxl->st->qif->set_compression_level(qxl, calc_compression_level()); } struct Dispatcher *red_dispatcher_get_dispatcher(RedDispatcher *red_dispatcher) |