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

Re: Gajim 0.13.4-4



On 09/17/2011 07:48 PM, Adam D. Barratt wrote:
On Sun, 2011-08-21 at 09:34 +0200, Yann Leboulanger wrote:
I fixed an important functionality bug in Gajim that makes it use 100%
CPU when connecting (#634880) [0]. I added a patch (attached) that is
already in newer versions of Gajim for months [1].

The package is ready, can I ask my Debian developper to upload it?
[...]
[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634880
[1] http://trac.gajim.org/ticket/5991

You mention that the patch is "in newer versions [...] for months" but
the package in unstable still appears to check for PENDING_READ before
checking for IS_CLOSED.  Please could you confirm exactly when the patch
was applied?

You are perfectly right. Another commit has been pushed some days later:
http://hg.gajim.org/gajim/rev/50980325f73d

I re-created gajim_0.13.4-4 package. with the attached patch. It it available here:
http://www.lagaule.org/debian/gajim/0.13/

Thanks for your comment. Should I ask my debian developper to upload it?

--
Yann
Index: src/common/xmpp/idlequeue.py
===================================================================
--- src/common/xmpp/idlequeue.py Sun Sep 18 12:54:42 2011 +0200
+++ src/common/xmpp/idlequeue.py Sun Sep 18 12:54:42 2011 +0200
@@ -362,20 +362,25 @@
 			self.unplug_idle(fd)
 			return False
 
+		read_write = False
 		if flags & PENDING_READ:
 			#print 'waiting read on %d, flags are %d' % (fd, flags)
 			obj.pollin()
-			return True
+			read_write = True
 
-		elif flags & PENDING_WRITE:
+		elif flags & PENDING_WRITE and not flags & IS_CLOSED:
 			obj.pollout()
-			return True
+			read_write = True
 
-		elif flags & IS_CLOSED:
+		if flags & IS_CLOSED:
 			# io error, don't expect more events
 			self.remove_timeout(obj.fd)
 			self.unplug_idle(obj.fd)
 			obj.pollend()
+			return False
+
+		if read_write:
+			return True
 		return False
 
 	def process(self):

Reply to: