Bläddra i källkod

Fix race condition in sending started signal from monitor

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
Alexandr Morozov 11 år sedan
förälder
incheckning
1480168e9f
1 ändrade filer med 5 tillägg och 3 borttagningar
  1. 5 3
      daemon/monitor.go

+ 5 - 3
daemon/monitor.go

@@ -244,10 +244,12 @@ func (m *containerMonitor) callback(command *execdriver.Command) {
 
 	m.container.State.SetRunning(command.Pid())
 
-	if m.startSignal != nil {
-		// signal that the process has started
+	// signal that the process has started
+	// close channel only if not closed
+	select {
+	case <-m.startSignal:
+	default:
 		close(m.startSignal)
-		m.startSignal = nil
 	}
 
 	if err := m.container.ToDisk(); err != nil {