selectors2: backport minimal fix of timeout handling from 2.0.1
The original code would raise TypeError since OSError() doesn't support
keyword arguments.
We can't simply import the selectors 2.0.1, which still spawns "uname -p"
through platform.system(). We could switch to the unreleased version, but
I decided to not right now to minimize the change.
--- a/mercurial/thirdparty/selectors2.py Wed Nov 14 10:12:43 2018 -0500
+++ b/mercurial/thirdparty/selectors2.py Mon Dec 03 21:31:19 2018 +0900
@@ -708,7 +708,7 @@
if expires is not None:
current_time = monotonic()
if current_time > expires:
- raise OSError(errno=errno.ETIMEDOUT)
+ raise OSError(errno.ETIMEDOUT, 'Connection timed out')
if recalc_timeout:
if "timeout" in kwargs:
kwargs["timeout"] = expires - current_time