On 02/03/2018 16:44, Daniel P. Berrangé wrote: >> Just a small thing, this is a bit inconsistent with the rest of the >> GSource API, where the g_source_attach is usually left to the caller >> when a function returns GSource *. > The APIs which return a GSource in glib typically don't even set the > callback function - we already cover that scenario with the > qio_channel_create_watch APIs. > > GLib doesn't typically have APIs which return a GSource after the > mix of creating the watch, setting callback & attaching to context.
True, on the other hand it's annoying for qio_channel_create_watch because of the function pointer case. So I suggested a mix of creating the watch and setting the callback. Having a function that takes a GMainContext and returns a tag is fine, too. Paolo > They all just return the watch ID value. > > So I think this proposal is ok as it is as there's no real precedence. > > Alternatively we could simply do without this API entirely. It is > trivial enough for the code that needs a GSource to get iuse the > normal qio_channel_add_watch|watch_full APIs, and then lookup the > GSource themselves - only one extra line of code in the callers.