Revert back to avoiding key errors on cancellation

context_caching
Tyler Goodlet 2021-12-16 11:00:57 -05:00
parent 21a9c47496
commit da5e36bf0c
1 changed files with 8 additions and 3 deletions

View File

@ -170,6 +170,7 @@ async def maybe_open_context(
await _Cache.lock.acquire()
ctx_key = (id(acm_func), key or tuple(kwargs.items()))
print(ctx_key)
value = None
try:
@ -214,6 +215,10 @@ async def maybe_open_context(
if _Cache.users <= 0:
log.info(f'De-allocating resource for {ctx_key}')
# terminate mngr nursery
_, no_more_users = _Cache.resources[ctx_key]
# XXX: if we're cancelled we the entry may have never
# been entered since the nursery task was killed.
# _, no_more_users = _Cache.resources[ctx_key]
entry = _Cache.resources.get(ctx_key)
if entry:
_, no_more_users = entry
no_more_users.set()