mirror of https://github.com/coder/coder.git
fix: TTY being GC'd before command is ran (#412)
* fix: TTY being GC'd before command is ran * Fix reference to tty
This commit is contained in:
parent
d37df894a4
commit
45daa44a99
|
@ -6,6 +6,7 @@ package pty
|
|||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"syscall"
|
||||
|
||||
"github.com/creack/pty"
|
||||
|
@ -29,6 +30,13 @@ func startPty(cmd *exec.Cmd) (PTY, *os.Process, error) {
|
|||
_ = ptty.Close()
|
||||
return nil, nil, xerrors.Errorf("start: %w", err)
|
||||
}
|
||||
go func() {
|
||||
// The GC can garbage collect the TTY FD before the command
|
||||
// has finished running. See:
|
||||
// https://github.com/creack/pty/issues/127#issuecomment-932764012
|
||||
_ = cmd.Wait()
|
||||
runtime.KeepAlive(ptty)
|
||||
}()
|
||||
oPty := &otherPty{
|
||||
pty: ptty,
|
||||
tty: tty,
|
||||
|
|
Loading…
Reference in New Issue