On Sat, Aug 9, 2014 at 2:05 AM, Neil D. Cerutti <ne...@norwich.edu> wrote:
> Perhaps defer release, a la a common Go pattern:
>
> with contextlib.ExitStack() as stack:
>     acquired = lock.acquire(blocking=False)
>     if acquired:
>         stack.callback(lock.release)
>         do_stuff

There's a race condition in that - an unexpected exception could
happen between those two. Are you able to set the callback to be a
"release if acquired" atomic operation?

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to