Sobes.tech
Senior

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() }