Daniel P. Berrange wrote:
There are a number of existing APIs which can benefit from
this, hence I decided to work on this separately from the
main storage APIs. The APIs which can make use of this are
virDomainCreateLinux, virDomainCreate, virNetworkCreate,
virNetworkCreateXML, virDomainSave, virDomainRestore, and
virDomainDumpCore. For all of these we add a second variant
postfixed with 'Job' in the name, returning a virJobPtr object
Another way to do this is to overload the domain etc. objects and make
them into suspensions. The advantages being (a) no new API is needed
and (b) some code benefits from overlapping computation even without
being changed. See also my reply here:
http://www.redhat.com/archives/libvir-list/2007-July/msg00257.html
OTOH, suspensions require "interesting" code changes inside libvirt,
although not necessarily requiring threads - there are several possible
implementations.
Rich.
--
Emerging Technologies, Red Hat -
http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in
England and Wales under Company Registration No. 03798903