newManager creates a new process manager.
(logger slog.Logger, execer agentexec.Execer, updateEnv func(current []string) (updated []string, err error), workingDir func() string)
| 83 | |
| 84 | // newManager creates a new process manager. |
| 85 | func newManager(logger slog.Logger, execer agentexec.Execer, updateEnv func(current []string) (updated []string, err error), workingDir func() string) *manager { |
| 86 | return &manager{ |
| 87 | logger: logger, |
| 88 | execer: execer, |
| 89 | clock: quartz.NewReal(), |
| 90 | procs: make(map[string]*process), |
| 91 | updateEnv: updateEnv, |
| 92 | workingDir: workingDir, |
| 93 | } |
| 94 | } |
| 95 | |
| 96 | // start spawns a new process. Both foreground and background |
| 97 | // processes use a long-lived context so the process survives |