Re: Status report 'Refactoring Deskbar-Applet' 02.07.2007



В Птн, 06/07/2007 в 21:00 +0200, Sebastian Pölsterl пишет:
> >>>> Hi!
> >>>>
> 
> Now I don't know where to search for the cause of this problem :( Please
> help me !!!
> 
> Some more details on how it should work:
> If the user types in something and the text didn't change for 250 ms
> each module is queried. Querying the modules works asynchronously (for
> each module the query method is called in a thread) and each module
> emits a signal if it collected the results. A callback function connects
> to those signals and adds the results to the TreeView/TreeStore. If the
> entry changed, the TreeView/TreeStore is cleared.
> 

Hm, it seems that with the patch you sent me (in attachment for others)
ThreadPool doesn't work correctly. It's just blocking - threads are
created but don't start. I'm not sure what is the reason of this bug
yet.
Index: /home/sebp/workspace/GSOC_2007/deskbar/core/ThreadPool.py
===================================================================
--- /home/sebp/workspace/GSOC_2007/deskbar/core/ThreadPool.py	(revision 1351)
+++ /home/sebp/workspace/GSOC_2007/deskbar/core/ThreadPool.py	(working copy)
@@ -87,7 +87,9 @@
         self._startSomeWorkers()
 
     def stats(self):
-        print self.q.qsize()
+        print "Queue size: %i" % self.q.qsize()
+        print "Working: "
         print self.working
-        print self.workers
+        print "Workers: %i" % self.workers
+        print "Threads: "
         print self.threads
Index: /home/sebp/workspace/GSOC_2007/deskbar/gsoc_deskbar.py
===================================================================
--- /home/sebp/workspace/GSOC_2007/deskbar/gsoc_deskbar.py	(revision 1350)
+++ /home/sebp/workspace/GSOC_2007/deskbar/gsoc_deskbar.py	(working copy)
@@ -49,7 +49,7 @@
 locale.textdomain('deskbar-applet')
 
 # Enable locking
-gtk.gdk.threads_init()
+#gtk.gdk.threads_init()
 
 # Parse commandline options
 usage = "deskbar-applet [OPTIONS]"
Index: /home/sebp/workspace/GSOC_2007/deskbar/ui/cuemiac/CuemiacModel.py
===================================================================
--- /home/sebp/workspace/GSOC_2007/deskbar/ui/cuemiac/CuemiacModel.py	(revision 1350)
+++ /home/sebp/workspace/GSOC_2007/deskbar/ui/cuemiac/CuemiacModel.py	(working copy)
@@ -77,7 +77,7 @@
 		Automagically append a match or list of matches 
 		to correct category(s), or create a new one(s) if needed.
 		"""
-		gtk.gdk.threads_enter()
+		#gtk.gdk.threads_enter()
 		if isinstance(match_obj, list):
 			for hit in match_obj:
 				self.__append ( (query_string, hit) )
@@ -85,7 +85,7 @@
 			self.__append ( (query_string, match_obj) )
 		else:
 			raise RuntimeError("Unknown Match type")
-		gtk.gdk.threads_leave()
+		#gtk.gdk.threads_leave()
 		
 	def __append (self, match):
 		qstring, match_obj = match
Index: /home/sebp/workspace/GSOC_2007/deskbar/ui/CuemiacWindowView.py
===================================================================
--- /home/sebp/workspace/GSOC_2007/deskbar/ui/CuemiacWindowView.py	(revision 1350)
+++ /home/sebp/workspace/GSOC_2007/deskbar/ui/CuemiacWindowView.py	(working copy)
@@ -1,4 +1,5 @@
 import gtk
+import gobject
 from gettext import gettext as _
 import deskbar.interfaces.View
 import deskbar.core.Utils
@@ -44,7 +45,8 @@
         self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
         self.connect("configure-event", self._controller.on_window_resized)
         
-        self._model.connect("query-ready", self.append_matches)
+        #self._model.connect("query-ready", self.append_matches)
+        self._model.connect("query-ready", lambda s,m: gobject.idle_add(self.append_matches, s, m))
         
 #        self.completion = gtk.EntryCompletion()
 #        self.completion.set_model(self._model.get_history())

Attachment: signature.asc
Description: =?koi8-r?Q?=FC=D4=C1?= =?koi8-r?Q?_=DE=C1=D3=D4=D8?= =?koi8-r?Q?_=D3=CF=CF=C2=DD=C5=CE=C9=D1?= =?koi8-r?Q?_=D0=CF=C4=D0=C9=D3=C1=CE=C1?= =?koi8-r?Q?_=C3=C9=C6=D2=CF=D7=CF=CA?= =?koi8-r?Q?_=D0=CF=C4=D0=C9=D3=D8=C0?=



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