This series focus on network backend (excluding slirp). The related patch for core's re-entrant (queue.c net.c) will be sent out separatelly.
The choice between GSource or AioContext is not decided yet. If we choose AioContext, I think we need to expand extra interface for readable() and writable(). readable() is different from io_flush, which causes block for sync, but this sync is not neccessary for NetWork. v2->v3: 1.drop hub and the frontend(virtio net) 2.split the patch for NetClientSource v1->v2: 1.NetClientState can associate with up to 2 GSource, for virtio net, one for tx, one for rx, so vq can run on different threads. 2.make network front-end onto glib, currently virtio net dataplane Liu Ping Fan (5): net: introduce glib function for network net: port tap onto glib net: resolve race of tap backend and its peer net: port vde onto glib net: port socket to glib include/net/net.h | 15 +++++ net/net.c | 61 +++++++++++++++++++++ net/socket.c | 152 ++++++++++++++++++++++++++++++++++++++++------------- net/tap.c | 63 ++++++++++++++++++---- net/vde.c | 15 +++++- 5 files changed, 258 insertions(+), 48 deletions(-) -- 1.7.4.4