[tracker] libtracker-miner: Cancel TrackerMinerFS cancellables on finalize()
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-miner: Cancel TrackerMinerFS cancellables on finalize()
- Date: Fri, 6 May 2011 10:18:28 +0000 (UTC)
commit 990fced53d6a89464b81c5305fd5c03e2c4c3f3e
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri May 6 11:55:17 2011 +0200
libtracker-miner: Cancel TrackerMinerFS cancellables on finalize()
This also gets rid of a related comment in TrackerMinerFiles, since
the cancellables there are those that TrackerMinerFS create.
src/libtracker-miner/tracker-miner-fs.c | 13 +++++++++++--
src/miners/fs/tracker-miner-files.c | 11 -----------
2 files changed, 11 insertions(+), 13 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index 600dda5..bffbe79 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -354,6 +354,10 @@ static void tracker_miner_fs_directory_add_internal (TrackerMinerFS *f
static gboolean miner_fs_has_children_without_parent (TrackerMinerFS *fs,
GFile *file);
+static void processing_pool_cancel_foreach (gpointer data,
+ gpointer user_data);
+
+
static guint signals[LAST_SIGNAL] = { 0, };
G_DEFINE_ABSTRACT_TYPE (TrackerMinerFS, tracker_miner_fs, TRACKER_TYPE_MINER)
@@ -776,6 +780,10 @@ fs_finalize (GObject *object)
g_queue_foreach (priv->crawled_directories, (GFunc) crawled_directory_data_free, NULL);
g_queue_free (priv->crawled_directories);
+ /* Cancel every pending task */
+ tracker_processing_pool_foreach (priv->processing_pool,
+ processing_pool_cancel_foreach,
+ NULL);
tracker_processing_pool_free (priv->processing_pool);
g_queue_foreach (priv->items_moved, (GFunc) item_moved_data_free, NULL);
@@ -4033,8 +4041,9 @@ processing_pool_cancel_foreach (gpointer data,
if (ctxt &&
ctxt->cancellable &&
- (g_file_equal (task_file, file) ||
- g_file_has_prefix (task_file, file))) {
+ (!file ||
+ (g_file_equal (task_file, file) ||
+ g_file_has_prefix (task_file, file)))) {
g_cancellable_cancel (ctxt->cancellable);
}
}
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index f0fd235..a77b5c8 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -2050,17 +2050,6 @@ extractor_get_embedded_metadata_cancel (GCancellable *cancellable,
{
GError *error;
- /* TODO: Cancel extractor call
- * We should cancel all of these on finalize()
- *
- * NOTE: We currently don't call g_cancellable_cancel() so
- * this is here just in the event that we may at some point.
- * It's likely the only time this would happen is during
- * finalize(). This is also why we don't close the (what
- * should be) currently open sparql builder like we do on
- * error in extractor_skip_embedded_metadata_cb().
- */
-
error = g_error_new_literal (miner_files_error_quark, 0,
"Embedded metadata extraction was cancelled");
tracker_miner_fs_file_notify (TRACKER_MINER_FS (data->miner), data->file, error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]