Skip to content

Commit 5bab1e1

Browse files
committed
make Queue.queue public
1 parent d582228 commit 5bab1e1

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

tremolo/lib/queue.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
class Queue:
99
def __init__(self, loop=None):
1010
self._loop = loop or asyncio.get_event_loop()
11-
self._queue = deque()
11+
self.queue = deque()
1212
self._getters = deque()
1313

1414
def qsize(self):
15-
return len(self._queue)
15+
return len(self.queue)
1616

1717
def put_nowait(self, item):
1818
while self._getters:
@@ -22,34 +22,34 @@ def put_nowait(self, item):
2222
fut.set_result(item)
2323
return
2424

25-
self._queue.append(item)
25+
self.queue.append(item)
2626

2727
async def get(self, timeout=None):
2828
if self._getters:
2929
await self._getters[-1]
3030

3131
try:
32-
return self._queue.popleft()
32+
return self.queue.popleft()
3333
except IndexError:
3434
fut = self._loop.create_future()
3535
self._getters.append(fut)
3636

37-
if timeout is None:
38-
return await fut
39-
40-
timer = self._loop.call_at(self._loop.time() + timeout, fut.cancel)
37+
if timeout is not None:
38+
timer = self._loop.call_at(self._loop.time() + timeout,
39+
fut.cancel)
4140

4241
try:
4342
return await fut
43+
except asyncio.CancelledError:
44+
try:
45+
self._getters.remove(fut)
46+
except ValueError:
47+
pass
48+
49+
raise
4450
finally:
45-
timer.cancel()
51+
if timeout is not None:
52+
timer.cancel()
4653

4754
def get_nowait(self):
48-
return self._queue.popleft()
49-
50-
# non-standar
51-
def clear(self):
52-
self._queue.clear()
53-
self._getters.clear()
54-
55-
return not self._queue and not self._getters
55+
return self.queue.popleft()

0 commit comments

Comments
 (0)