Ir ir funkcija `unpredictableFunc()`, kuru nepieciešams ietīt tā, lai tā darbotos ar laika ierobežojumu (piemēram, 1 sekundi) un reģistrētu tās izpildes laiku.
// Ir funkcija, kas darbojas bezgalīgi ilgi un atgriež skaitli.
// Tās ķermeni nevar mainīt (iedomājieties, ka iekšā ir tīkla pieprasījums).
func unpredictableFunc() int64 {
rnd := rand.Int63n(5000)
time.Sleep(time.Duration(rnd) * time.Millisecond)
return rnd
}
// Jāmaina ietverošā funkcija, kas darbosies ar noteiktu laika limitu (piemēram, 1 sekundi).
// Ja "garā" funkcija pabeidzas šajā laikā, tas ir lieliski, atgriežam rezultātu.
// Ja nē, atgriežam kļūdu. Rezultāts šajā gadījumā nav svarīgs.
//
// Turklāt, jāizmēra, cik ilgi šī funkcija darbojās (vienkārši izvadiet logā).
// Ietverošās funkcijas paraksts var tikt mainīts.
func predictableFunc() int64 {
return unpredictableFunc()
}