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:
commit
ddbc68f564
1 changed files with 25 additions and 7 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue