On Mon, Jan 14, 2008 at 10:39:25AM +0000, Richard W.M. Jones wrote: > 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. That's an interesting idea though i think we'd still need a fair number of new APIs. Only a handful of existing APIs have a 'flags' param where we could request async operation, so even if we could keep the same return type by using a suspension we still need extra args to indicate sync vs async. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list