code: func TickGo(interval time.Duration, procfunc gp.ProcessFunc) gp.Process {
  	return gp.Go(func(proc gp.Process) {
  		ticker := time.NewTicker(interval)
  		goCallOnTicker(ticker.C, procfunc)(proc)
  		ticker.Stop()
  	})
  }
docs: // TickGo constructs a ticker with interval, and calls the given ProcessFunc every
  // time the ticker fires.
  // This is not rate limited, multiple calls could be in-flight at the same time.
  //
  //  p := periodicproc.TickGo(time.Second, func(proc goprocess.Process) {
  //  	fmt.Println("fire!")
  //  	<-time.After(10 * time.Second) // will not block sequential execution
  //  })
  //
  //  <-time.After(3 * time.Second)
  //  p.Close()
  //
  //  // Output:
  //  // fire!
  //  // fire!
  //  // fire!