Browse Source

Merge pull request #9074 from gyuho/expect

pkg/expect: fix deadlock in macOS
Gyuho Lee 8 years ago
parent
commit
c699470d3b
1 changed files with 0 additions and 5 deletions
  1. 0 5
      pkg/expect/expect.go

+ 0 - 5
pkg/expect/expect.go

@@ -33,7 +33,6 @@ type ExpectProcess struct {
 	fpty *os.File
 	fpty *os.File
 	wg   sync.WaitGroup
 	wg   sync.WaitGroup
 
 
-	ptyMu sync.Mutex // protects accessing fpty
 	cond  *sync.Cond // for broadcasting updates are available
 	cond  *sync.Cond // for broadcasting updates are available
 	mu    sync.Mutex // protects lines and err
 	mu    sync.Mutex // protects lines and err
 	lines []string
 	lines []string
@@ -76,9 +75,7 @@ func (ep *ExpectProcess) read() {
 	printDebugLines := os.Getenv("EXPECT_DEBUG") != ""
 	printDebugLines := os.Getenv("EXPECT_DEBUG") != ""
 	r := bufio.NewReader(ep.fpty)
 	r := bufio.NewReader(ep.fpty)
 	for ep.err == nil {
 	for ep.err == nil {
-		ep.ptyMu.Lock()
 		l, rerr := r.ReadString('\n')
 		l, rerr := r.ReadString('\n')
-		ep.ptyMu.Unlock()
 		ep.mu.Lock()
 		ep.mu.Lock()
 		ep.err = rerr
 		ep.err = rerr
 		if l != "" {
 		if l != "" {
@@ -150,9 +147,7 @@ func (ep *ExpectProcess) close(kill bool) error {
 	}
 	}
 
 
 	err := ep.cmd.Wait()
 	err := ep.cmd.Wait()
-	ep.ptyMu.Lock()
 	ep.fpty.Close()
 	ep.fpty.Close()
-	ep.ptyMu.Unlock()
 	ep.wg.Wait()
 	ep.wg.Wait()
 
 
 	if err != nil {
 	if err != nil {