[Spice-devel] [RFC 0/3] Dispatcher infrastructure

Alon Levy alevy at redhat.com
Tue Nov 1 01:10:00 PDT 2011


These patches add a Dispatcher (dispatcher.[ch]) struct that is used to
reimplement main_dispatcher.[ch] and red_dispatcher.[ch] + red_worker.c

The first two patches I consider non RFC, the RFC is for the last patch:
 it adds 500 lines of code.
 it doesn't hide the underlying socket completely since the red_worker thread
  sends three non ack items (the two RedChannel instances and a READY reply
  right after thread creation) which I didn't incorporate into the Dispatcher.

The bulk of the third patch was done automatically with some vim scripts, extracting
the dispatcher_register calls and the RedWorkerMessage* structs, so I trust they don't
have any typos.

Tested with Windows 7 (async drivers) and Fedora 16 (sync drivers).

Please review,

Alon Levy (3):
  server/red_dispatcher: support concurrent asyncs
  server: introduce dispatcher
  server/red_worker: reuse dispatcher

 server/Makefile.am       |    2 +
 server/dispatcher.c      |  162 +++++++++++
 server/dispatcher.h      |   78 +++++
 server/main_dispatcher.c |  105 ++------
 server/red_dispatcher.c  |  683 ++++++++++++++++++++++++++++++--------------
 server/red_dispatcher.h  |  185 ++++++++++++-
 server/red_worker.c      |  716 +++++++++++++++++++++++++---------------------
 server/red_worker.h      |    2 +
 8 files changed, 1304 insertions(+), 629 deletions(-)
 create mode 100644 server/dispatcher.c
 create mode 100644 server/dispatcher.h

-- 
1.7.7



More information about the Spice-devel mailing list