Sobes.tech
Senior

Existuje funkce `unpredictableFunc()`, kterou je třeba obalit tak, aby běžela s časovým limitem (například 1 sekunda) a zaznamenávala dobu běhu. // Existuje funkce, která běží nekonečně dlouho a vrací číslo. // Tělo této funkce nelze měnit (představme si, že uvnitř je síťový požadavek). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Je třeba upravit obalovací funkci, která bude pracovat s daným časovým limitem (například 1 sekunda). // Pokud "dlouhá" funkce doběhne v tomto čase, je to skvělé, vracíme výsledek. // Pokud ne, vracíme chybu. Výsledek této funkce nás v tomto případě nezajímá. // // Navíc je třeba změřit, jak dlouho tato funkce běžela (stačí vypisovat do logu). // Signatura obalovací funkce může být změněna. func predictableFunc() int64 { return unpredictableFunc() }