spawn returns process-id now

This commit is contained in:
HAYAMA_Kaoru
2024-12-05 12:08:02 +09:00
parent 29608ecbaa
commit 9d7317330e
+6 -3
View File
@@ -76,11 +76,14 @@ func (g *Global) spawn(ctx context.Context, w *gmnlisp.World, args []gmnlisp.Nod
argStrings = append(argStrings, s.String())
}
sh := g.term.CommandContext(ctx, argStrings[0], argStrings[1:]...)
if err := sh.Start(); err != nil {
cmd := g.term.CommandContext(ctx, argStrings[0], argStrings[1:]...)
if err := cmd.Start(); err != nil {
return nil, err
}
g.closer = append(g.closer, func() { sh.Wait() })
g.closer = append(g.closer, func() { cmd.Wait() })
if p := cmd.Process; p != nil {
return gmnlisp.Integer(p.Pid), nil
}
return gmnlisp.Null, nil
}