[tor-commits] [stem/master] Return the previous behavior of `_get_with_timeout`
atagar at torproject.org
atagar at torproject.org
Thu Jul 16 01:28:58 UTC 2020
commit 3431c5cba5ead275f359d2785cd5cc252e5b495d
Author: Illia Volochii <illia.volochii at gmail.com>
Date: Tue Apr 21 21:44:13 2020 +0300
Return the previous behavior of `_get_with_timeout`
---
stem/control.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/stem/control.py b/stem/control.py
index 67fb6a47..d0cbb34a 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -2085,7 +2085,7 @@ class Controller(BaseController):
return None # not waiting, so nothing to provide back
else:
while True:
- event = await _get_with_timeout(hs_desc_content_queue, timeout)
+ event = await _get_with_timeout(hs_desc_content_queue, timeout, start_time)
if event.address == address:
if event.descriptor:
@@ -2094,7 +2094,7 @@ class Controller(BaseController):
# no descriptor, looking through HS_DESC to figure out why
while True:
- event = await _get_with_timeout(hs_desc_queue, timeout)
+ event = await _get_with_timeout(hs_desc_queue, timeout, start_time)
if event.address == address and event.action == stem.HSDescAction.FAILED:
if event.reason == stem.HSDescReason.NOT_FOUND:
@@ -3992,7 +3992,12 @@ async def _get_with_timeout(event_queue: queue.Queue, timeout: float, start_time
Pulls an item from a queue with a given timeout.
"""
+ if timeout:
+ time_left = timeout - (time.time() - start_time)
+ else:
+ time_left = None
+
try:
- return await asyncio.wait_for(event_queue.get(), timeout=timeout)
+ return await asyncio.wait_for(event_queue.get(), timeout=time_left)
except asyncio.TimeoutError:
raise stem.Timeout('Reached our %0.1f second timeout' % timeout)
More information about the tor-commits
mailing list