hghave: avoid a deadlock reading the child process's output stable
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 31 May 2018 22:11:47 -0400
branchstable
changeset 37852 6fb76897e066
parent 37851 3790efb388ca
child 37853 6ae62d62c3f6
hghave: avoid a deadlock reading the child process's output The output of `pylint` is voluminous enough that it fills the buffer on Windows, and waited for the parent to read it out. But the parent was waiting on the child to exit. I'm not sure what the intent of setting `ret = -1` in the exception handler just above this was...
tests/hghave.py
--- a/tests/hghave.py	Thu May 31 09:19:09 2018 -0400
+++ b/tests/hghave.py	Thu May 31 22:11:47 2018 -0400
@@ -98,8 +98,8 @@
         if e.errno != errno.ENOENT:
             raise
         ret = -1
-    ret = p.wait()
-    s = p.stdout.read()
+    s = p.communicate()[0]
+    ret = p.returncode
     return (ignorestatus or not ret) and r.search(s)
 
 @check("baz", "GNU Arch baz client")