summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesus Cea <jcea@jcea.es>2012-08-01 01:57:52 (GMT)
committerJesus Cea <jcea@jcea.es>2012-08-01 01:57:52 (GMT)
commitc9aa321a016343187e76fdae13d3a4c75e75afde (patch)
tree35631c53681ea5c5a923f40f97a18ee9360ca788
parent0efcf99c9eebfd65f6dd7ecc5c94b1c340ad6513 (diff)
downloadcpython-c9aa321a016343187e76fdae13d3a4c75e75afde.zip
cpython-c9aa321a016343187e76fdae13d3a4c75e75afde.tar.gz
cpython-c9aa321a016343187e76fdae13d3a4c75e75afde.tar.bz2
Closes #15499: Sleep is hardcoded in webbrowser.UnixBrowser
-rw-r--r--Lib/webbrowser.py17
-rw-r--r--Misc/NEWS3
2 files changed, 10 insertions, 10 deletions
diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 5b441e6..ce5b48e 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 0d21d64..b1df727 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