gsocketaddressenumerator: Make it an error to call next_async before finish

It logically doesn't make sense to repeatedly call next_async()
before the previous one has finished.
This commit is contained in:
Patrick Griffis 2018-12-11 10:10:10 -05:00 committed by Patrick Griffis
parent 8b9e88937b
commit 4c472f8e3f
2 changed files with 6 additions and 0 deletions

View File

@ -1271,6 +1271,10 @@ g_network_address_address_enumerator_next_async (GSocketAddressEnumerator *enum
complete_queued_task (addr_enum, task, NULL); complete_queued_task (addr_enum, task, NULL);
else else
{ {
/* It does not make sense for this to be called multiple
* times before the initial callback has been called */
g_assert (addr_enum->queued_task == NULL);
addr_enum->queued_task = g_steal_pointer (&task); addr_enum->queued_task = g_steal_pointer (&task);
/* Lookup in parallel as per RFC 8305 */ /* Lookup in parallel as per RFC 8305 */
g_resolver_lookup_by_name_with_flags_async (resolver, g_resolver_lookup_by_name_with_flags_async (resolver,

View File

@ -120,6 +120,8 @@ g_socket_address_enumerator_real_next_async (GSocketAddressEnumerator *enumerato
* Asynchronously retrieves the next #GSocketAddress from @enumerator * Asynchronously retrieves the next #GSocketAddress from @enumerator
* and then calls @callback, which must call * and then calls @callback, which must call
* g_socket_address_enumerator_next_finish() to get the result. * g_socket_address_enumerator_next_finish() to get the result.
*
* It is an error to call this multiple times before the previous callback has finished.
*/ */
void void
g_socket_address_enumerator_next_async (GSocketAddressEnumerator *enumerator, g_socket_address_enumerator_next_async (GSocketAddressEnumerator *enumerator,