From: Jesus Cea Date: Wed, 1 Aug 2012 01:57:52 +0000 (+0200) Subject: Closes #15499: Sleep is hardcoded in webbrowser.UnixBrowser X-Git-Tag: v3.3.0b2~77^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9aa321a016343187e76fdae13d3a4c75e75afde;p=python Closes #15499: Sleep is hardcoded in webbrowser.UnixBrowser --- diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index 5b441e6ecc..ce5b48e00d 100644 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -232,17 +232,14 @@ class UnixBrowser(BaseBrowser): stdout=(self.redirect_stdout and inout or None), stderr=inout, start_new_session=True) if remote: - # wait five seconds. If the subprocess is not finished, the + # wait at most five seconds. If the subprocess is not finished, the # remote invocation has (hopefully) started a new instance. - time.sleep(1) - rc = p.poll() - if rc is None: - time.sleep(4) - rc = p.poll() - if rc is None: - return True - # if remote call failed, open() will try direct invocation - return not rc + try: + rc = p.wait(5) + # if remote call failed, open() will try direct invocation + return not rc + except subprocess.TimeoutExpired: + return True elif self.background: if p.poll() is None: return True diff --git a/Misc/NEWS b/Misc/NEWS index 0d21d64edd..b1df727fa4 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -72,6 +72,9 @@ Core and Builtins Library ------- +- Issue #15499: Launching a webbrowser in Unix used to sleep for a few + seconds. Original patch by Anton Barkovsky. + - Issue #15463: the faulthandler module truncates strings to 500 characters, instead of 100, to be able to display long file paths