debugwireproto: handle unimplemented util.poll() for Windows
This is the same logic used in sshpeer.doublepipe. It doesn't completely fix
test-ssh-proto{,-unbundle}.t ("read(-1) -> X" is changed to "read(X) -> X", the
order of some lines are changed, and abort messages seem to be missing), but it
cuts down a ton on the failure spew.
--- a/mercurial/debugcommands.py Sun Mar 04 16:55:51 2018 -0500
+++ b/mercurial/debugcommands.py Mon Mar 05 20:22:34 2018 -0500
@@ -2818,11 +2818,16 @@
elif action == 'close':
peer.close()
elif action == 'readavailable':
- fds = util.poll([stdout.fileno(), stderr.fileno()])
-
- if stdout.fileno() in fds:
+ fds = [stdout.fileno(), stderr.fileno()]
+ try:
+ act = util.poll(fds)
+ except NotImplementedError:
+ # non supported yet case, assume all have data.
+ act = fds
+
+ if stdout.fileno() in act:
util.readpipe(stdout)
- if stderr.fileno() in fds:
+ if stderr.fileno() in act:
util.readpipe(stderr)
elif action == 'readline':
stdout.readline()