|
|
|
@ -3,6 +3,7 @@ |
|
|
|
|
|
|
|
import os |
|
|
|
import time |
|
|
|
import sys |
|
|
|
from test.fork_wait import ForkWait |
|
|
|
from test.support import run_unittest, reap_children, get_attribute |
|
|
|
|
|
|
|
@ -13,10 +14,15 @@ get_attribute(os, 'wait4') |
|
|
|
|
|
|
|
class Wait4Test(ForkWait): |
|
|
|
def wait_impl(self, cpid): |
|
|
|
option = os.WNOHANG |
|
|
|
if sys.platform.startswith('aix'): |
|
|
|
# Issue #11185: wait4 is broken on AIX and will always return 0 |
|
|
|
# with WNOHANG. |
|
|
|
option = 0 |
|
|
|
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) |
|
|
|
spid, status, rusage = os.wait4(cpid, option) |
|
|
|
if spid == cpid: |
|
|
|
break |
|
|
|
time.sleep(1.0) |
|
|
|
|