func Timeout(check Check, timeout time.Duration) Check {
	return func() error {
		c := make(chan error, 1)
		go func() { c <- check() }()
		select {
		case err := <-c:
			return err
		case <-time.After(timeout):
			return timeoutError(timeout)
		}
	}
}
func Timeout(check Check, timeout time.Duration) Check {
	return func() error {
		c := make(chan error, 1)
		go func() { c <- check() }()
		select {
		case err := <-c:
			return err
		case <-time.After(timeout):
			return timeoutError(timeout)
		}
	}
}
func Timeout ( check Check , timeout time . Duration ) Check { return func ( ) error { c := make ( chan error , 1 ) go func ( ) { c <- check ( ) } ( ) select { case err := <- c : return err case <- time . After ( timeout ) : return timeoutError ( timeout ) } } }
// Timeout adds a timeout to a Check. If the underlying check takes longer than
// the timeout, it returns an error.
Timeout adds a timeout to a Check . If the underlying check takes longer than the timeout it returns an error .