diff --git a/gns3server/utils/asyncio/__init__.py b/gns3server/utils/asyncio/__init__.py index 34eef732..524903ad 100644 --- a/gns3server/utils/asyncio/__init__.py +++ b/gns3server/utils/asyncio/__init__.py @@ -77,12 +77,15 @@ def wait_for_process_termination(process, timeout=10): :param timeout: Timeout in seconds """ - while timeout > 0: - if process.returncode is not None: - return - yield from asyncio.sleep(0.1) - timeout -= 0.1 - raise asyncio.TimeoutError() + if sys.version_info >= (3,5): + yield from asyncio.wait_for(process.wait(), timeout=timeout) + else: + while timeout > 0: + if process.returncode is not None: + return + yield from asyncio.sleep(0.1) + timeout -= 0.1 + raise asyncio.TimeoutError() @asyncio.coroutine