On Wed, Feb 28, 2018 at 08:44:24PM +0800, Peter Xu wrote: > On Wed, Feb 28, 2018 at 09:08:45AM +0000, Daniel P. Berrangé wrote: > > On Wed, Feb 28, 2018 at 01:06:22PM +0800, Peter Xu wrote: > > > It's a more powerful version of qio_channel_add_watch(), which supports > > > non-default gcontext. It's stripped from the old one, then we have > > > g_source_get_id() to fetch the tag ID to keep the old interface. > > > > > > Note that the new API will return a gsource, meanwhile keep a reference > > > of it so that callers need to unref them explicitly. > > > > I don't really like this. Having qio_channel_add_watch and > > qio_channel_add_watch_full with differing return values is > > really very surprising. They should be functionally identical, > > except for the extra context arg. > > Yeah it's not nice, but I do need the GSource and the tag ID does not > help in the series. > > An alternative would be that I modify qio_channel_add_watch() to > return GSource too. Is there an third choice that you could suggest?
Given you have the id + GMainContext you can just acquire the GSource, if needed, using g_main_context_find_source_by_id. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|