From 2c64c65608d8dde2163fd17ea3ee4fd92679f8ce Mon Sep 17 00:00:00 2001 From: Christian Kellner Date: Tue, 3 Aug 2021 13:04:19 +0000 Subject: [PATCH] test/assembler: use new loop_for_fd helper Use the new `loop_for_fd` helper that got added to `LoopControl`, which is basically a version of the existing code. --- test/run/test_assemblers.py | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/test/run/test_assemblers.py b/test/run/test_assemblers.py index 089e90a2..a475a123 100644 --- a/test/run/test_assemblers.py +++ b/test/run/test_assemblers.py @@ -3,7 +3,6 @@ # import contextlib -import errno import hashlib import json import os @@ -248,26 +247,16 @@ class TestAssemblers(test.TestBase): @contextlib.contextmanager def loop_create_device(ctl, fd, offset=None, sizelimit=None): - while True: - lo = loop.Loop(ctl.get_unbound()) - try: - lo.set_fd(fd) - except OSError as e: - lo.close() - if e.errno == errno.EBUSY: - continue - raise e - try: - lo.set_status(offset=offset, sizelimit=sizelimit, autoclear=True) - except BlockingIOError: - lo.clear_fd() - lo.close() - continue - break + lo = None try: + lo = ctl.loop_for_fd(fd, + offset=offset, + sizelimit=sizelimit, + autoclear=True) yield lo finally: - lo.close() + if lo: + lo.close() @contextlib.contextmanager