diff --git a/_demo/osproc/exec.go b/_cmptest/osproc/exec.go similarity index 93% rename from _demo/osproc/exec.go rename to _cmptest/osproc/exec.go index b5217028..35bddf8f 100644 --- a/_demo/osproc/exec.go +++ b/_cmptest/osproc/exec.go @@ -26,4 +26,5 @@ func main() { return } proc.Wait() + fmt.Println("proc.Wait done") } diff --git a/internal/lib/os/exec_unix.go b/internal/lib/os/exec_unix.go index 2b2ac01c..f9063b4d 100644 --- a/internal/lib/os/exec_unix.go +++ b/internal/lib/os/exec_unix.go @@ -14,7 +14,6 @@ import ( ) func (p *Process) wait() (ps *ProcessState, err error) { - /* TODO(xsw): if p.Pid == -1 { return nil, syscall.EINVAL } @@ -58,8 +57,6 @@ func (p *Process) wait() (ps *ProcessState, err error) { rusage: &rusage, } return ps, nil - */ - panic("todo: os.Process.wait") } func (p *Process) signal(sig Signal) error { diff --git a/internal/lib/os/wait_unimp.go b/internal/lib/os/wait_unimp.go new file mode 100644 index 00000000..810e35da --- /dev/null +++ b/internal/lib/os/wait_unimp.go @@ -0,0 +1,21 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// aix, darwin, js/wasm, openbsd, solaris and wasip1/wasm don't implement +// waitid/wait6. + +//go:build aix || darwin || (js && wasm) || openbsd || solaris || wasip1 + +package os + +// blockUntilWaitable attempts to block until a call to p.Wait will +// succeed immediately, and reports whether it has done so. +// It does not actually call p.Wait. +// This version is used on systems that do not implement waitid, +// or where we have not implemented it yet. Note that this is racy: +// a call to Process.Signal can in an extremely unlikely case send a +// signal to the wrong process, see issue #13987. +func (p *Process) blockUntilWaitable() (bool, error) { + return false, nil +} diff --git a/internal/lib/runtime/mfinal.go b/internal/lib/runtime/mfinal.go index d75099b5..c3498f98 100644 --- a/internal/lib/runtime/mfinal.go +++ b/internal/lib/runtime/mfinal.go @@ -7,5 +7,6 @@ package runtime func SetFinalizer(obj any, finalizer any) { - panic("todo: runtime.SetFinalizer") + // TODO(xsw): + // panic("todo: runtime.SetFinalizer") }