misc/gremlin/gremlin.go
func timeoutAndMoveOn(fp loiterFunc, timeout time.Duration) {
	ch := time.After(timeout)
	for {
		select {
		case <-ch:
			return
		default:
			fp()
		}
	}
}
func timeoutAndMoveOn(fp loiterFunc, timeout time.Duration) {
	ch := time.After(timeout)
	for {
		select {
		case <-ch:
			return
		default:
			fp()
		}
	}
}
func timeoutAndMoveOn ( fp loiterFunc , timeout time . Duration ) { ch := time . After ( timeout ) for { select { case <- ch : return default : fp ( ) } } }
// timeoutAndMoveOn executes the long running function pointed to by 'fp' and
// times out after 'timeout' duration.
timeoutAndMoveOn executes the long running function pointed to by fp and times out after timeout duration .