1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #11843 from ahmetalpbalkan/win-cli/monitorttysize

windows: monitorTtySize correctly by polling
This commit is contained in:
Tibor Vass 2015-03-31 11:14:04 -04:00
commit ddbc68f564

View file

@ -12,8 +12,10 @@ import (
"net/url" "net/url"
"os" "os"
gosignal "os/signal" gosignal "os/signal"
"runtime"
"strconv" "strconv"
"strings" "strings"
"time"
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
"github.com/docker/docker/api" "github.com/docker/docker/api"
@ -279,13 +281,29 @@ func getExecExitCode(cli *DockerCli, execID string) (bool, int, error) {
func (cli *DockerCli) monitorTtySize(id string, isExec bool) error { func (cli *DockerCli) monitorTtySize(id string, isExec bool) error {
cli.resizeTty(id, isExec) cli.resizeTty(id, isExec)
sigchan := make(chan os.Signal, 1) if runtime.GOOS == "windows" {
gosignal.Notify(sigchan, signal.SIGWINCH) go func() {
go func() { prevW, prevH := cli.getTtySize()
for _ = range sigchan { for {
cli.resizeTty(id, isExec) time.Sleep(time.Millisecond * 250)
} w, h := cli.getTtySize()
}()
if prevW != w || prevH != h {
cli.resizeTty(id, isExec)
}
prevW = w
prevH = h
}
}()
} else {
sigchan := make(chan os.Signal, 1)
gosignal.Notify(sigchan, signal.SIGWINCH)
go func() {
for _ = range sigchan {
cli.resizeTty(id, isExec)
}
}()
}
return nil return nil
} }