bpo-42392: Improve removal of *loop* parameter in asyncio primitives (GH-23499)
* Update code after merge review from 1st1
* Use a sentinel approach for loop parameter
Remove unnecessary _get_running_loop patching
* Use more clear function name (_verify_parameter_is_marker -> _verify_no_loop)
* Add init method to _LoopBoundMixin to check that loop param wasn't used
diff --git a/Lib/asyncio/queues.py b/Lib/asyncio/queues.py
index 78ae9e9..a87ec8b 100644
--- a/Lib/asyncio/queues.py
+++ b/Lib/asyncio/queues.py
@@ -17,7 +17,7 @@ class QueueFull(Exception):
pass
-class Queue(mixins._LoopBoundedMixin):
+class Queue(mixins._LoopBoundMixin):
"""A queue, useful for coordinating producer and consumer coroutines.
If maxsize is less than or equal to zero, the queue size is infinite. If it
@@ -29,7 +29,8 @@ class Queue(mixins._LoopBoundedMixin):
interrupted between calling qsize() and doing an operation on the Queue.
"""
- def __init__(self, maxsize=0):
+ def __init__(self, maxsize=0, *, loop=mixins._marker):
+ super().__init__(loop=loop)
self._maxsize = maxsize
# Futures.