From 9d7317330e9eeaa132c5fbcf5ae4e42332f1a02c Mon Sep 17 00:00:00 2001 From: HAYAMA_Kaoru Date: Thu, 5 Dec 2024 11:08:50 +0900 Subject: [PATCH] spawn returns process-id now --- global.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/global.go b/global.go index ac4a5ff..26f50a0 100644 --- a/global.go +++ b/global.go @@ -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 }