Specifying `blocking` and `timeout` when acquiring lock as a context manager

Neil D. Cerutti neilc at norwich.edu
Fri Aug 8 14:57:10 EDT 2014


On 8/8/2014 2:35 PM, Neil D. Cerutti wrote:
> Here's another attempt at context managing:


> @contextlib.contextmanager
> def release_if_acquired(lock, blocking=True, timeout=-1):
>      acquired = lock.acquire(blocking, timeout)
>      if acquired:
>          yield acquired
>          lock.release()
>      else:
>          yield acquired

I should not have used a temporary.

@contextlib.contextmanager
def release_if_acquired(lock, blocking=True, timeout=-1):
      if lock.acquire(blocking, timeout)
          yield True
          lock.release()
      else:
          yield False

-- 
Neil Cerutti




More information about the Python-list mailing list