On Thu, Jan 05, 2017 at 02:32:46PM -0600, Eric Blake wrote: > On 01/05/2017 10:03 AM, Daniel P. Berrange wrote: > > Currently there is no data associated with a successful > > task completion. This adds an opaque pointer to the task > > to store an arbitrary result. > > > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > > --- > > include/io/task.h | 27 +++++++++++++++++++++++++++ > > io/task.c | 20 ++++++++++++++++++++ > > 2 files changed, 47 insertions(+) > > > > I suppose a different approach would have been changing QIOTaskFunc() to > have a void* return, but that would be more invasive. Grabbing the > result separately from the task completing is a bit weird, but looks > like it will work.
FYI, the design I've chosen here closely matches that used by GLib in its own GTask / GAsyncResult, on which the QIOTask was modelled. The idea is that in future when we eventually bump to a newer glib, we can switch over to GTask easily. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|