[glib/wip/tingping/happy-eyeballs: 8/8] gsocketaddressenumerator: Make it an error to call next_async before finish
- From: Patrick Griffis <pgriffis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/wip/tingping/happy-eyeballs: 8/8] gsocketaddressenumerator: Make it an error to call next_async before finish
- Date: Tue, 11 Dec 2018 15:13:30 +0000 (UTC)
commit 009ff1c996fbf2174e3b3e338a141b3b263116bd
Author: Patrick Griffis <tingping tingping se>
Date: Tue Dec 11 10:10:10 2018 -0500
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.
gio/gnetworkaddress.c | 4 ++++
gio/gsocketaddressenumerator.c | 2 ++
2 files changed, 6 insertions(+)
---
diff --git a/gio/gnetworkaddress.c b/gio/gnetworkaddress.c
index 035e18d42..1651f89ed 100644
--- a/gio/gnetworkaddress.c
+++ b/gio/gnetworkaddress.c
@@ -1271,6 +1271,10 @@ g_network_address_address_enumerator_next_async (GSocketAddressEnumerator *enum
complete_queued_task (addr_enum, task, NULL);
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);
/* Lookup in parallel as per RFC 8305 */
g_resolver_lookup_by_name_with_flags_async (resolver,
diff --git a/gio/gsocketaddressenumerator.c b/gio/gsocketaddressenumerator.c
index 9e3942ffe..17872fd77 100644
--- a/gio/gsocketaddressenumerator.c
+++ b/gio/gsocketaddressenumerator.c
@@ -120,6 +120,8 @@ g_socket_address_enumerator_real_next_async (GSocketAddressEnumerator *enumerato
* Asynchronously retrieves the next #GSocketAddress from @enumerator
* and then calls @callback, which must call
* g_socket_address_enumerator_next_finish() to get the result.
+ *
+ * It is an error to call this multiple times before the first callback has finished.
*/
void
g_socket_address_enumerator_next_async (GSocketAddressEnumerator *enumerator,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]