library os: StartProcess/Wait

This commit is contained in:
xushiwei
2024-07-18 22:27:00 +08:00
parent c248a50338
commit a8e1fd1054
4 changed files with 24 additions and 4 deletions

View File

@@ -26,4 +26,5 @@ func main() {
return
}
proc.Wait()
fmt.Println("proc.Wait done")
}

View File

@@ -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 {

View File

@@ -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
}

View File

@@ -7,5 +7,6 @@
package runtime
func SetFinalizer(obj any, finalizer any) {
panic("todo: runtime.SetFinalizer")
// TODO(xsw):
// panic("todo: runtime.SetFinalizer")
}