On Thu, Jul 07, 2011 at 09:38:01AM +0300, Yonit Halperin wrote: > On 07/06/2011 08:37 PM, Alon Levy wrote: > >The new _ASYNC io's in qxl_dev listed at the end get six new api > >functions, and an additional callback function "async_complete". When > >the async version of a specific io is used, completion is notified by > >calling async_complete, and no READY message is written or expected by > >the dispatcher. > > > >update_area has been changed to push QXLRects to the worker thread, where > >the conversion to SpiceRect takes place. > > > >Added api: > > > >QXLWorker: > > update_area_async > > add_memslot_async > > destroy_surfaces_async > > destroy_primary_surface_async > > create_primary_surface_async > > destroy_surface_wait_async > > oom_async > > > > > > > >-static void qxl_worker_oom(QXLWorker *qxl_worker) > >+static void qxl_worker_oom_helper(QXLWorker *qxl_worker, int async) > > { > > RedDispatcher *dispatcher = (RedDispatcher *)qxl_worker; > >+ RedWorkerMessage message; > >+ > > if (!test_bit(RED_WORKER_PENDING_OOM, dispatcher->pending)) { > >- RedWorkerMessage message = RED_WORKER_MESSAGE_OOM; > >+ if (async) { > >+ message = RED_WORKER_MESSAGE_OOM_ASYNC; > >+ } else { > >+ message = RED_WORKER_MESSAGE_OOM; > >+ } > > set_bit(RED_WORKER_PENDING_OOM,&dispatcher->pending); > > write_message(dispatcher->channel,&message); > > } > > } > > > > OOM has always been async - do we need two different RED_WORKER_MESSAGEs? No, I guess we can throw away the IO as well then.
> > >+static void qxl_worker_oom(QXLWorker *qxl_worker) > >+{ > >+ qxl_worker_oom_helper(qxl_worker, 0); > >+} > >+ > >+static void qxl_worker_oom_async(QXLWorker *qxl_worker) > >+{ > >+ qxl_worker_oom_helper(qxl_worker, 1); > >+} > >+ > _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel