Cancelling gupnp_service_info_get_introspection_async



Hi All,

We've identified a problem with gupnp_service_info_get_introspection_async. The problem is simple. There is no way to cancel a request to gupnp_service_info_get_introspection_async and this can make it difficult for GUPnP clients that call this function to shutdown cleanly.

Technically, it is easy to add a cancel function, but there are a number of possible solutions and some of them involve breaking the backwards compatibility, so I thought it would be better to raise the issue on the mailing list before preparing a patch. For me there are two questions.

1. Do we modify gupnp_service_info_get_introspection_async directly or deprecate it and provide a new function that contains an extra parameter or return value used for cancellation? I'm guessing we want to do the latter. If we provide a new function, what should it be called?

2. How should the clients cancel gupnp_service_info_get_introspection_async? Should they pass in a GCancellable object, which they can pass to a call to g_cancellable_cancel at a later stage, or should they call a new _cancel function to cancel the retrieval of introspection data. The first option would be more consistent with modern GLib interfaces, but the second, would be more consistent with how the existing GUPnP asynchronous functions, such as gupnp_service_proxy_begin_action, currently work.

Any thoughts?

Mark





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]