summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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