code: func (c *Gcd) probeDebugPort() error {
  	ticker := time.NewTicker(time.Millisecond * 100)
  	timeoutTicker := time.NewTicker(time.Second * c.timeout)
  
  	defer func() {
  		ticker.Stop()
  		timeoutTicker.Stop()
  	}()
  
  	for {
  		select {
  		case <-ticker.C:
  			resp, err := http.Get(c.apiEndpoint)
  			if err != nil {
  				continue
  			}
  			defer resp.Body.Close()
  			c.readyCh <- struct{}{}
  			return nil
  		case <-timeoutTicker.C:
  			return fmt.Errorf("Unable to contact debugger at %s after %d seconds, gave up", c.apiEndpoint, c.timeout)
  		}
  	}
  }
docs: // probes the debugger report and signals when it's available.