Postoji funkcija `unpredictableFunc()`, koju treba obuhvatiti tako da se izvršava sa timeout-om (na primer, 1 sekunda) i da se beleži vreme izvršenja.
// Postoji funkcija koja radi neograničeno dugo i vraća broj.
// Nije dozvoljeno menjati njen sadržaj (pretpostavimo da je unutar mrežni zahtev).
func unpredictableFunc() int64 {
rnd := rand.Int63n(5000)
time.Sleep(time.Duration(rnd) * time.Millisecond)
return rnd
}
// Potrebno je izmeniti funkciju za obuhvat, koja će raditi sa zadatim timeout-om (na primer, 1 sekunda).
// Ako "duga" funkcija završi u tom vremenu, odlično, vraćamo rezultat.
// Ako ne, vraćamo grešku. Rezultat rada u tom slučaju nije važan.
//
// Takođe, treba izmeriti koliko je vremena trajalo izvršenje ove funkcije (jednostavno ispisati u log).
// Potpis funkcije za obuhvat može biti izmenjen.
func predictableFunc() int64 {
return unpredictableFunc()
}