[nautilus] dbus-launcher: Add a cancellable
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] dbus-launcher: Add a cancellable
- Date: Thu, 4 Aug 2022 22:31:06 +0000 (UTC)
commit a221ec70be07e6c79629b87d6e1216d6a4cabd50
Author: Corey Berla <corey berla me>
Date: Sun Jul 31 20:31:45 2022 -0700
dbus-launcher: Add a cancellable
Prevent the proxy creation or ping after dbus-launcher is finalized.
src/nautilus-dbus-launcher.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/src/nautilus-dbus-launcher.c b/src/nautilus-dbus-launcher.c
index df27bd7ee..25ec3930b 100644
--- a/src/nautilus-dbus-launcher.c
+++ b/src/nautilus-dbus-launcher.c
@@ -16,6 +16,7 @@ typedef struct
{
GDBusProxy *proxy;
GError *error;
+ GCancellable *cancellable;
gboolean ping_on_creation;
} NautilusDBusLauncherData;
@@ -62,6 +63,7 @@ on_nautilus_dbus_launcher_ping_finished (GObject *source_object,
g_dbus_proxy_call_finish (G_DBUS_PROXY (source_object), res, &error);
data->error = error;
+ g_clear_object (&data->cancellable);
}
void
@@ -105,12 +107,13 @@ on_nautilus_dbus_proxy_ready (GObject *source_object,
{
g_warning ("Error creating proxy %s", error->message);
data->error = error;
+ g_clear_object (&data->cancellable);
}
else if (data->ping_on_creation)
{
g_dbus_proxy_call (data->proxy,
"org.freedesktop.DBus.Peer.Ping", NULL,
- G_DBUS_CALL_FLAGS_NONE, G_MAXINT, NULL,
+ G_DBUS_CALL_FLAGS_NONE, G_MAXINT, data->cancellable,
on_nautilus_dbus_launcher_ping_finished, data);
}
}
@@ -127,7 +130,7 @@ nautilus_dbus_launcher_create_proxy (NautilusDBusLauncherData *data,
name,
object_path,
interface,
- NULL,
+ data->cancellable,
on_nautilus_dbus_proxy_ready,
data);
}
@@ -166,6 +169,8 @@ nautilus_dbus_launcher_finalize (GObject *object)
{
g_clear_object (&self->data[i]->proxy);
g_clear_object (&self->data[i]->error);
+ g_cancellable_cancel (self->data[i]->cancellable);
+ g_clear_object (&self->data[i]->cancellable);
g_free (self->data[i]);
}
@@ -191,6 +196,7 @@ nautilus_dbus_launcher_data_new (gboolean ping_on_creation)
data->proxy = NULL;
data->error = NULL;
data->ping_on_creation = ping_on_creation;
+ data->cancellable = g_cancellable_new ();
return data;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]