Revert 47014 until it is more robust
diff --git a/Lib/test/fork_wait.py b/Lib/test/fork_wait.py
index 7eb55f6..5600bdb 100644
--- a/Lib/test/fork_wait.py
+++ b/Lib/test/fork_wait.py
@@ -34,14 +34,7 @@
                 pass
 
     def wait_impl(self, cpid):
-        for i in range(10):
-            # waitpid() shouldn't hang, but some of the buildbots seem to hang
-            # in the forking tests.  This is an attempt to fix the problem.
-            spid, status = os.waitpid(cpid, os.WNOHANG)
-            if spid == cpid:
-                break
-            time.sleep(2 * SHORTSLEEP)
-
+        spid, status = os.waitpid(cpid, 0)
         self.assertEquals(spid, cpid)
         self.assertEquals(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
 
diff --git a/Lib/test/test_fork1.py b/Lib/test/test_fork1.py
index 7f445ab..cba5fc7 100644
--- a/Lib/test/test_fork1.py
+++ b/Lib/test/test_fork1.py
@@ -2,7 +2,6 @@
 """
 
 import os
-import time
 from test.fork_wait import ForkWait
 from test.test_support import TestSkipped, run_unittest
 
@@ -13,14 +12,7 @@
 
 class ForkTest(ForkWait):
     def wait_impl(self, cpid):
-        for i in range(10):
-            # waitpid() shouldn't hang, but some of the buildbots seem to hang
-            # in the forking tests.  This is an attempt to fix the problem.
-            spid, status = os.waitpid(cpid, os.WNOHANG)
-            if spid == cpid:
-                break
-            time.sleep(1.0)
-
+        spid, status = os.waitpid(cpid, 0)
         self.assertEqual(spid, cpid)
         self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
 
diff --git a/Lib/test/test_wait3.py b/Lib/test/test_wait3.py
index 532cb49..f6a41a6 100644
--- a/Lib/test/test_wait3.py
+++ b/Lib/test/test_wait3.py
@@ -2,7 +2,6 @@
 """
 
 import os
-import time
 from test.fork_wait import ForkWait
 from test.test_support import TestSkipped, run_unittest
 
@@ -18,14 +17,10 @@
 
 class Wait3Test(ForkWait):
     def wait_impl(self, cpid):
-        for i in range(10):
-            # wait3() shouldn't hang, but some of the buildbots seem to hang
-            # in the forking tests.  This is an attempt to fix the problem.
-            spid, status, rusage = os.wait3(os.WNOHANG)
+        while 1:
+            spid, status, rusage = os.wait3(0)
             if spid == cpid:
                 break
-            time.sleep(1.0)
-
         self.assertEqual(spid, cpid)
         self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
         self.assertTrue(rusage)
diff --git a/Lib/test/test_wait4.py b/Lib/test/test_wait4.py
index fee593e..027e5c3 100644
--- a/Lib/test/test_wait4.py
+++ b/Lib/test/test_wait4.py
@@ -2,7 +2,6 @@
 """
 
 import os
-import time
 from test.fork_wait import ForkWait
 from test.test_support import TestSkipped, run_unittest
 
@@ -18,13 +17,7 @@
 
 class Wait4Test(ForkWait):
     def wait_impl(self, cpid):
-        for i in range(10):
-            # wait4() shouldn't hang, but some of the buildbots seem to hang
-            # in the forking tests.  This is an attempt to fix the problem.
-            spid, status, rusage = os.wait4(cpid, os.WNOHANG)
-            if spid == cpid:
-                break
-            time.sleep(1.0)
+        spid, status, rusage = os.wait4(cpid, 0)
         self.assertEqual(spid, cpid)
         self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
         self.assertTrue(rusage)