[New-bugs-announce] [issue33638] condition lock not re-acquired
christof
report at bugs.python.org
Thu May 24 15:10:23 EDT 2018
New submission from christof <chbailly at gmail.com>:
Hello,
I have a simple code which triggers a timeout if a task did not complete
import asyncio
async def task_timeout():
condition = asyncio.Condition()
with await condition:
try:
await asyncio.wait_for(condition.wait(), timeout=4)
except asyncio.TimeoutError as e:
print("timeout reached")
# uncomment this line to make the code work
# await asyncio.sleep(0)
f = asyncio.ensure_future(task_timeout())
loop= asyncio.get_event_loop()
loop.run_until_complete(f)
It throws an exception when leaving the scope for the condition because it expects the lock to be acquired:
RuntimeError: Lock is not acquired.
If you uncomment the line to sleep, it will work because it will continue in the coroutine Condition.wait and call:
yield from self.acquire() => locks.py line 355
I think this is a bug and that this behaviour is not the expected one.
----------
components: asyncio
messages: 317604
nosy: asvetlov, christof, yselivanov
priority: normal
severity: normal
status: open
title: condition lock not re-acquired
type: behavior
versions: Python 3.6
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue33638>
_______________________________________
More information about the New-bugs-announce
mailing list