From 11bc3fa3a861d53aa387bb21d26d0d36e961fd78 Mon Sep 17 00:00:00 2001 From: Lane Kolbly Date: Tue, 3 Mar 2020 13:00:20 -0600 Subject: mpm: Make contextmanagers exception-safe When making context managers in Python, the yield statement has to be wrapped in a try/finally clause in order to properly clean up after exceptions happen. --- mpm/python/usrp_mpm/sys_utils/uio.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'mpm/python/usrp_mpm/sys_utils') diff --git a/mpm/python/usrp_mpm/sys_utils/uio.py b/mpm/python/usrp_mpm/sys_utils/uio.py index c724557e6..84e4b2b64 100644 --- a/mpm/python/usrp_mpm/sys_utils/uio.py +++ b/mpm/python/usrp_mpm/sys_utils/uio.py @@ -24,8 +24,10 @@ def open_uio(label=None, path=None, length=None, read_only=True, offset=None): Use this like you would open() for a file""" uio_obj = UIO(label, path, length, read_only, offset) uio_obj._open() - yield uio_obj - uio_obj._close() + try: + yield uio_obj + finally: + uio_obj._close() def get_all_uio_devs(): -- cgit v1.2.3