Sobes.tech
Senior

Existuje funkcia `unpredictableFunc()`, ktorú je potrebné obaliť tak, aby sa vykonávala s časovým limitom (napríklad 1 sekunda) a zaznamenávala čas vykonávania. // Existuje funkcia, ktorá beží neobmedzene dlho a vracia číslo. // Telo tejto funkcie nemožno meniť (predstavme si, že vo vnútri je sieťová požiadavka). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Je potrebné upraviť obalovaciu funkciu, ktorá bude pracovať s daným časovým limitom (napríklad 1 sekunda). // Ak "dlhá" funkcia skončí v tomto čase, je to skvelé, vrátime výsledok. // Ak nie, vrátime chybu. Výsledok tejto funkcie nás v tomto prípade nezaujíma. // // Navyše je potrebné zmerať, ako dlho táto funkcia bežala (stačí vypísať do logu). // Signatúra obalovacej funkcie môže byť zmenená. func predictableFunc() int64 { return unpredictableFunc() }