1// Copyright 2009 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Handle AIX's wait4 specific behavior 6 7package syscall 8 9//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) 10//wait4(pid Pid_t, status *_C_int, options _C_int, rusage *Rusage) Pid_t 11 12func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { 13 var status _C_int 14 var r Pid_t 15 err = ERESTART 16 // AIX wait4 may return with ERESTART errno, while the processus is still 17 // active. 18 for err == ERESTART { 19 r, err = wait4(Pid_t(pid), &status, options, rusage) 20 } 21 wpid = int(r) 22 if wstatus != nil { 23 *wstatus = WaitStatus(status) 24 } 25 return 26} 27