[gthumb] use g_cancellable_connect/disconnect to handle race conditions correctly
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] use g_cancellable_connect/disconnect to handle race conditions correctly
- Date: Sun, 7 Nov 2010 08:45:20 +0000 (UTC)
commit fe6ebdc77faab64fc8b213b8014e76cfcf9f8c68
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sun Nov 7 09:35:37 2010 +0100
use g_cancellable_connect/disconnect to handle race conditions correctly
gthumb/gth-metadata-provider.c | 7 +++++--
gthumb/gth-task.c | 12 ++++++------
2 files changed, 11 insertions(+), 8 deletions(-)
---
diff --git a/gthumb/gth-metadata-provider.c b/gthumb/gth-metadata-provider.c
index 8546baa..c4083c9 100644
--- a/gthumb/gth-metadata-provider.c
+++ b/gthumb/gth-metadata-provider.c
@@ -179,7 +179,7 @@ query_metadata_done (QueryMetadataData *rmd)
_g_object_list_unref (rmtd->files);
g_free (rmtd);
if (rmd->cancel_signal != 0)
- g_signal_handler_disconnect (rmd->cancellable, rmd->cancel_signal);
+ g_cancellable_disconnect (rmd->cancellable, rmd->cancel_signal);
_g_object_unref (rmd->cancellable);
g_free (rmd);
}
@@ -289,7 +289,10 @@ _g_query_metadata_async (GList *files, /* GthFileData * list *
rmd = g_new0 (QueryMetadataData, 1);
rmd->cancellable = _g_object_ref (cancellable);
if (rmd->cancellable != NULL)
- rmd->cancel_signal = g_signal_connect (rmd->cancellable, "cancelled", G_CALLBACK (query_metadata_cancelled_cb), rmd);
+ rmd->cancel_signal = g_cancellable_connect (rmd->cancellable,
+ G_CALLBACK (query_metadata_cancelled_cb),
+ rmd,
+ NULL);
rmd->ready_func = ready_func;
rmd->user_data = user_data;
diff --git a/gthumb/gth-task.c b/gthumb/gth-task.c
index d6d1858..da9fe3e 100644
--- a/gthumb/gth-task.c
+++ b/gthumb/gth-task.c
@@ -61,7 +61,7 @@ gth_task_finalize (GObject *object)
task = GTH_TASK (object);
if (task->priv->cancellable != NULL) {
- g_signal_handler_disconnect (task->priv->cancellable, task->priv->cancellable_cancelled);
+ g_cancellable_disconnect (task->priv->cancellable, task->priv->cancellable_cancelled);
g_object_unref (task->priv->cancellable);
}
@@ -194,7 +194,7 @@ gth_task_exec (GthTask *task,
return;
if (task->priv->cancellable != NULL) {
- g_signal_handler_disconnect (task->priv->cancellable, task->priv->cancellable_cancelled);
+ g_cancellable_disconnect (task->priv->cancellable, task->priv->cancellable_cancelled);
g_object_unref (task->priv->cancellable);
}
@@ -202,10 +202,10 @@ gth_task_exec (GthTask *task,
task->priv->cancellable = _g_object_ref (cancellable);
else
task->priv->cancellable = g_cancellable_new ();
- task->priv->cancellable_cancelled = g_signal_connect (task->priv->cancellable,
- "cancelled",
- G_CALLBACK (cancellable_cancelled_cb),
- task);
+ task->priv->cancellable_cancelled = g_cancellable_connect (task->priv->cancellable,
+ G_CALLBACK (cancellable_cancelled_cb),
+ task,
+ NULL);
task->priv->running = TRUE;
GTH_TASK_GET_CLASS (task)->exec (task);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]