[gnome-builder] vala-pack: hold lock while indexing file



commit da5f06c48e1cbcc1805bf4c81e1b35c5c58f3768
Author: Christian Hergert <chergert redhat com>
Date:   Thu Jan 18 07:20:49 2018 -0800

    vala-pack: hold lock while indexing file

 src/plugins/vala-pack/ide-vala-code-indexer.vala | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
---
diff --git a/src/plugins/vala-pack/ide-vala-code-indexer.vala 
b/src/plugins/vala-pack/ide-vala-code-indexer.vala
index bbb863cb3..5627ee17f 100644
--- a/src/plugins/vala-pack/ide-vala-code-indexer.vala
+++ b/src/plugins/vala-pack/ide-vala-code-indexer.vala
@@ -38,7 +38,17 @@ namespace Ide
                        var index = service.index;
                        var tree = index.get_symbol_tree_sync (file, cancellable);
 
-                       var ret = new Ide.ValaCodeIndexEntries (file, tree as Ide.ValaSymbolTree);
+                       Ide.CodeIndexEntries? ret = null;
+
+                       Ide.ThreadPool.push (Ide.ThreadPoolKind.INDEXER, () => {
+                               index.do_locked (_ => {
+                                       ret = new Ide.ValaCodeIndexEntries (file, tree as Ide.ValaSymbolTree);
+                               });
+                               GLib.Idle.add(index_file_async.callback);
+                       });
+
+                       yield;
+
                        if (ret == null)
                                throw new GLib.IOError.FAILED ("failed to build entries");
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]