Van egy `unpredictableFunc()` nevű függvény, amit be kell csomagolni úgy, hogy időkorlát mellett (például 1 másodperc) fusson, és mérjük a futási időt.
// Van egy függvény, ami végtelen ideig fut, és számot ad vissza.
// A törzsét nem lehet módosítani (feltételezzük, hogy belül egy hálózati kérés van).
func unpredictableFunc() int64 {
rnd := rand.Int63n(5000)
time.Sleep(time.Duration(rnd) * time.Millisecond)
return rnd
}
// A csomagoló függvényt módosítani kell, hogy egy adott időkorlát mellett (például 1 másodperc) működjön.
// Ha a "hosszú" függvény ezen idő alatt befejeződik, az jó, visszaadjuk az eredményt.
// Ha nem, hibát adunk vissza. Az eredmény ebben az esetben nem számít.
//
// Továbbá mérni kell, hogy mennyi ideig futott ez a függvény (egyszerűen írjuk ki a logba).
// A wrapper függvény szignatúráját módosíthatjuk.
func predictableFunc() int64 {
return unpredictableFunc()
}