in pkg/mesh/app.go [101:126]
func (kr *KRun) WaitTCPReady(addr string, max time.Duration) error {
t0 := time.Now()
deadline := t0.Add(max)
for {
// if we cant connect, count as fail
conn, err := net.DialTimeout("tcp", addr, deadline.Sub(time.Now()))
if err != nil {
if time.Now().After(deadline) {
return err
}
time.Sleep(50 * time.Millisecond)
if conn != nil {
_ = conn.Close()
}
continue
}
err = conn.Close()
if err != nil {
log.Println("WaitTCP.Close()", err)
}
log.Println("Application ready", time.Since(t0), time.Since(kr.StartTime))
return nil
}
return nil
}