code: func (agent *Agent) poll(ctx context.Context) error {
  	// Metadata tells us which Machine Provider instance to talk to
  	// and how to authenticate.
  	for {
  		logging.Infof(ctx, "Polling.")
  		instruction, err := agent.mp.poll(ctx, agent.hostname, "GCE")
  		if err != nil {
  			// Log error but don't return. Keep polling.
  			logging.Errorf(ctx, "%s", err.Error())
  		} else {
  			if err = agent.handle(ctx, instruction); err != nil {
  				return err
  			}
  		}
  		tsmon.Flush(ctx)
  		time.Sleep(time.Minute)
  	}
  }
docs: // poll polls for instructions from Machine Provider.
  //
  // Does not return except in case of error.