beagle r4892 - trunk/beagle/beagled/ThunderbirdQueryable



Author: dbera
Date: Sun Dec 21 18:39:52 2008
New Revision: 4892
URL: http://svn.gnome.org/viewvc/beagle?rev=4892&view=rev

Log:
Prevent the thunderbird indexer from starting twice.


Modified:
   trunk/beagle/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs

Modified: trunk/beagle/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs
==============================================================================
--- trunk/beagle/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs	(original)
+++ trunk/beagle/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs	Sun Dec 21 18:39:52 2008
@@ -57,22 +57,26 @@
 			overriden_toindex = Environment.GetEnvironmentVariable ("TOINDEX_DIR");
 			
 			GMime.Global.Init ();
-			
-			Inotify.Subscribe (IndexDirectory, 
-				OnInotifyEvent, 
-				Inotify.EventType.Create | 
-				Inotify.EventType.Delete |
-				Inotify.EventType.DeleteSelf);
 		}
 		
 		public override void Start ()
 		{
 			base.Start ();
+
+			// delay everything till the backend is actually started
+			Inotify.Subscribe (IndexDirectory, 
+				OnInotifyEvent, 
+				Inotify.EventType.Create | 
+				Inotify.EventType.Delete |
+				Inotify.EventType.DeleteSelf);
 			ExceptionHandlingThread.Start (new ThreadStart (StartWorker));
 		}
 		
 		private void StartWorker ()
 		{
+			if (indexer != null)
+				return; // already started
+
 			Logger.Log.Debug ("Starting Thunderbird backend");
 			Stopwatch watch = new Stopwatch ();
 			watch.Start ();
@@ -406,7 +410,7 @@
 
 			return indexable;
 		}
-		
+
 		// ReadLine in stream requires the more "fancy" line ending "\r\n", which we do't have. So we use this
 		// implementation instead.
 		private static string ReadEncodingLine (System.IO.Stream stream)
@@ -423,7 +427,7 @@
 					byte[] tmp = new byte [str.Length + (int) 0.5 * str.Length];
 					Array.Copy (str, 0, tmp, 0, str.Length);
 				}
-				
+
 				str [pos++] = (byte) c;
 				c = stream.ReadByte ();
 			}



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