bpo-30258: Fix handling of child error in regrtest (#1477)

Don't stop the worker thread if a child failed.
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 413d7f9..9874dde 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -555,16 +555,16 @@
                     # comes from the shutdown of the interpreter in the subcommand.
                     stderr = debug_output_pat.sub("", stderr)
 
-                    if retcode != 0:
-                        result = (CHILD_ERROR, "Exit code %s" % retcode)
-                        output.put((test, stdout.rstrip(), stderr.rstrip(),
-                                    result))
+                    if retcode == 0:
+                        stdout, _, result = stdout.strip().rpartition("\n")
+                        if not result:
+                            output.put((None, None, None, None))
+                            return
 
-                    stdout, _, result = stdout.strip().rpartition("\n")
-                    if not result:
-                        output.put((None, None, None, None))
-                        return
-                    result = json.loads(result)
+                        result = json.loads(result)
+                    else:
+                        result = (CHILD_ERROR, "Exit code %s" % retcode)
+
                     output.put((test, stdout.rstrip(), stderr.rstrip(), result))
             except BaseException:
                 output.put((None, None, None, None))