]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
queues: Update docs
authorBen Darnell <ben@bendarnell.com>
Sun, 30 Dec 2018 19:43:04 +0000 (14:43 -0500)
committerBen Darnell <ben@bendarnell.com>
Sun, 30 Dec 2018 20:14:37 +0000 (15:14 -0500)
tornado/queues.py
tornado/test/queues_test.py
tornado/websocket.py

index 726477560dc77a142af9fc2470a9b381e630e4de..d135c3cb0115c200418adbd3673265262d80e7b5 100644 (file)
@@ -222,10 +222,10 @@ class Queue(Generic[_T]):
         else:
             self.__put_internal(item)
 
-    def get(self, timeout: Union[float, datetime.timedelta] = None) -> "Future[_T]":
+    def get(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[_T]:
         """Remove and return an item from the queue.
 
-        Returns a Future which resolves once an item is available, or raises
+        Returns an awaitable which resolves once an item is available, or raises
         `tornado.util.TimeoutError` after a timeout.
 
         ``timeout`` may be a number denoting a time (on the same
@@ -280,7 +280,7 @@ class Queue(Generic[_T]):
     def join(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[None]:
         """Block until all items in the queue are processed.
 
-        Returns a Future, which raises `tornado.util.TimeoutError` after a
+        Returns an awaitable, which raises `tornado.util.TimeoutError` after a
         timeout.
         """
         return self._finished.wait(timeout)
index c46c0585ba65121320309428f1c4b5cd22b4f420..8e527dbb30ad7769fe11e50b9d8f177a23278702 100644 (file)
@@ -10,6 +10,7 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+import asyncio
 from datetime import timedelta
 from random import random
 import unittest
@@ -143,8 +144,10 @@ class QueueGetTest(AsyncTestCase):
     @gen_test
     def test_get_clears_timed_out_getters(self):
         q = queues.Queue()  # type: queues.Queue[int]
-        getters = [q.get(timedelta(seconds=0.01)) for _ in range(10)]
-        get = q.get()
+        getters = [
+            asyncio.ensure_future(q.get(timedelta(seconds=0.01))) for _ in range(10)
+        ]
+        get = asyncio.ensure_future(q.get())
         self.assertEqual(11, len(q._getters))
         yield gen.sleep(0.02)
         self.assertEqual(11, len(q._getters))
@@ -259,8 +262,10 @@ class QueuePutTest(AsyncTestCase):
     @gen_test
     def test_put_clears_timed_out_getters(self):
         q = queues.Queue()  # type: queues.Queue[int]
-        getters = [q.get(timedelta(seconds=0.01)) for _ in range(10)]
-        get = q.get()
+        getters = [
+            asyncio.ensure_future(q.get(timedelta(seconds=0.01))) for _ in range(10)
+        ]
+        get = asyncio.ensure_future(q.get())
         q.get()
         self.assertEqual(12, len(q._getters))
         yield gen.sleep(0.02)
index a9a3e7fe7f39f5f5b8f032682ccd082224ad6743..50665c694db16afd1765d9735e81e6669309ec37 100644 (file)
@@ -1508,10 +1508,10 @@ class WebSocketClientConnection(simple_httpclient._HTTPConnection):
         ready.
         """
 
-        future = self.read_queue.get()
+        awaitable = self.read_queue.get()
         if callback is not None:
-            self.io_loop.add_future(future, callback)
-        return future
+            self.io_loop.add_future(asyncio.ensure_future(awaitable), callback)
+        return awaitable
 
     def on_message(self, message: Union[str, bytes]) -> Optional[Awaitable[None]]:
         return self._on_message(message)