diff --git a/PILOTVERSION b/PILOTVERSION index b64fc70e..1f3166a1 100644 --- a/PILOTVERSION +++ b/PILOTVERSION @@ -1 +1 @@ -3.9.3.1 \ No newline at end of file +3.9.3.2 \ No newline at end of file diff --git a/pilot/util/constants.py b/pilot/util/constants.py index 0130e4c2..30bab0af 100644 --- a/pilot/util/constants.py +++ b/pilot/util/constants.py @@ -28,7 +28,7 @@ RELEASE = '3' # released number should be fixed at 3 for Pilot 3 VERSION = '9' # version number is '1' for first release, '0' until then, increased for bigger updates REVISION = '3' # revision number should be reset to '0' for every new version release, increased for small updates -BUILD = '1' # build number should be reset to '1' for every new development cycle +BUILD = '2' # build number should be reset to '1' for every new development cycle SUCCESS = 0 FAILURE = 1 diff --git a/pilot/util/container.py b/pilot/util/container.py index a3661230..d5483659 100644 --- a/pilot/util/container.py +++ b/pilot/util/container.py @@ -113,21 +113,22 @@ def execute(executable: Any, **kwargs: dict) -> Any: # noqa: C901 def read_output(stream, queue): while True: + sleep(0.01) try: line = stream.readline() if not line: break except (AttributeError, ValueError): - # Handle the case where stream is None (AttributeError) or closed (ValueError) break except OSError as e: if e.errno == errno.EBADF: - # Handle the case where the file descriptor is bad break else: raise - - queue.put(line) + try: + queue.put_nowait(line) + except queue.Full: + sleep(0.01) # Sleep for a short interval to avoid busy waiting stdout_thread = threading.Thread(target=read_output, args=(process.stdout, stdout_queue)) stderr_thread = threading.Thread(target=read_output, args=(process.stderr, stderr_queue))