]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Python3 fixes in IOLoop
authorBen Darnell <ben@bendarnell.com>
Thu, 24 Feb 2011 01:15:36 +0000 (17:15 -0800)
committerBen Darnell <ben@bendarnell.com>
Thu, 24 Feb 2011 01:23:36 +0000 (17:23 -0800)
* __lt__ instead of __cmp__
* Write bytes instead of str to waker pipe
* Reading from the waker pipe returns '' at EOF instead of raising error

tornado/ioloop.py

index 62b2b0900b042de9b1a0eddee4be9a721a53bdd6..d4bec01a16dcf5fdb4d31ac29760277e4b6ad2ed 100644 (file)
@@ -25,6 +25,7 @@ import time
 import traceback
 
 from tornado import stack_context
+from tornado.escape import utf8
 
 try:
     import signal
@@ -335,7 +336,7 @@ class IOLoop(object):
 
     def _wake(self):
         try:
-            self._waker_writer.write("x")
+            self._waker_writer.write(utf8("x"))
         except IOError:
             pass
 
@@ -362,7 +363,8 @@ class IOLoop(object):
     def _read_waker(self, fd, events):
         try:
             while True:
-                self._waker_reader.read()
+                result = self._waker_reader.read()
+                if not result: break
         except IOError:
             pass
 
@@ -385,9 +387,9 @@ class _Timeout(object):
         self.deadline = deadline
         self.callback = callback
 
-    def __cmp__(self, other):
-        return cmp((self.deadline, id(self.callback)),
-                   (other.deadline, id(other.callback)))
+    def __lt__(self, other):
+        return ((self.deadline, id(self.callback)) <
+                (other.deadline, id(other.callback)))
 
 
 class PeriodicCallback(object):