code: func (c *Context) Stop() {
  	log.Printf("[WARN] terraform: Stop called, initiating interrupt sequence")
  
  	c.l.Lock()
  	defer c.l.Unlock()
  
  	// If we're running, then stop
  	if c.runContextCancel != nil {
  		log.Printf("[WARN] terraform: run context exists, stopping")
  
  		// Tell the hook we want to stop
  		c.sh.Stop()
  
  		// Stop the context
  		c.runContextCancel()
  		c.runContextCancel = nil
  	}
  
  	// Grab the condition var before we exit
  	if cond := c.runCond; cond != nil {
  		log.Printf("[INFO] terraform: waiting for graceful stop to complete")
  		cond.Wait()
  	}
  
  	log.Printf("[WARN] terraform: stop complete")
  }
docs: // Stop stops the running task.
  //
  // Stop will block until the task completes.